{
 "firmware": "Bubba Machine",
 "slug": "bubba",
 "author": "Erbubar23",
 "repo": "https://github.com/Erbubar23/bubba-machine",
 "licence": "GPL-3.0-or-later (firmware); MIT (Plaits and stmlib); Apache-2.0 (msfa); CC0-1.0, Unlicense and GPL-3.0 (Vital-derived factory sounds)",
 "closed_source": false,
 "mapped_release": "v0.8.0-beta",
 "mapped_commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
 "release_date": "2026-10-17",
 "date_mapped": "2026-10-17",
 "status": "Independently checked: zero errors in round 3 (2026-10-17). No device testing.",
 "version_note": "GitHub pre-release; the hub labels it beta; this map covers bubba-machine-0.8.0-beta.fwsc, whose SHA-256 matches the hub package according to the supplied release record, and not bubba-diag, the silent hardware diagnostic build.",
 "turns_it_into": "A six-track groovebox with modeled drums, recorded pads and four selectable bass, FM, wavetable or polyphonic instruments.",
 "docs": [
  {
   "title": "English guide",
   "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md",
   "words": 7299,
   "read_at": "v0.8.0-beta; 2026-10-17"
  },
  {
   "title": "English installation guide",
   "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/INSTALL.md",
   "words": 946,
   "read_at": "v0.8.0-beta; 2026-10-17"
  },
  {
   "title": "README",
   "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/README.md",
   "words": 1054,
   "read_at": "v0.8.0-beta; 2026-10-17"
  }
 ],
 "install": {
  "official": "https://github.com/Erbubar23/bubba-machine/releases/tag/v0.8.0-beta",
  "hub": "https://thefirmwarehub.com/",
  "method": "M-VAVE official update loader; its package checks the boot area before accepting an update.",
  "package": "bubba-machine-0.8.0-beta.fwsc",
  "package_sha256": "e8fc401adb9bc7a8d853f8a12ab8b392c3fc2b26d9812716c0472c7dc69e3bfa",
  "diagnostic": "bubba-diag is the separate silent panel diagnostic; it is not the groovebox.",
  "source": [
   {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/INSTALL.md",
    "lines": "30-49",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/INSTALL.md#L30-L49"
   }
  ]
 },
 "part_id_notes": "SEL on the shared panel is SCL in Bubba; ALGORITHM and PRESETS are endless encoders without a press action; lights are the white panel lamps, grouped by button and key rather than separate legacy led_button ids.",
 "modes": [
  {
   "id": "track_drums",
   "name": "BR-8 track",
   "how_to_get_there": "Select T1 on HOME, then SEQ or EDIT.",
   "what_it_is": "The fixed drum track and its pages.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2070-2118",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2070-L2118"
    }
   ]
  },
  {
   "id": "track_pads",
   "name": "BP-1 track",
   "how_to_get_there": "Select T2 on HOME, then SEQ or EDIT.",
   "what_it_is": "The fixed pad sampler and its pages.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2070-2118",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2070-L2118"
    }
   ]
  },
  {
   "id": "track_notes",
   "name": "Note tracks",
   "how_to_get_there": "Select T3–T6 on HOME, then SEQ or EDIT.",
   "what_it_is": "Four tracks sharing five selectable synth engines.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2070-2118",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2070-L2118"
    }
   ]
  },
  {
   "id": "confirmation",
   "name": "Confirmation",
   "how_to_get_there": "Choose an operation that opens a question.",
   "what_it_is": "OCT+ accepts; HOME or OCT− cancels; other page buttons cancel and may also perform their normal action.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2271-2282",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
    }
   ]
  },
  {
   "id": "safe_mode",
   "name": "Safe mode",
   "how_to_get_there": "Power on with both OCT buttons held, or after two unsuccessful starts; after four consecutive unsuccessful starts the next power-on enters chip recovery instead.",
   "what_it_is": "Recovery USB without synthesis.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_main.c",
     "lines": "740-745",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L740-L745"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_boot.c",
     "lines": "81-110",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L81-L110"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_boot.c",
     "lines": "100-110",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L100-L110"
    }
   ]
  },
  {
   "id": "save_current",
   "name": "Save current",
   "how_to_get_there": "Select this row in SAVE.",
   "what_it_is": "A row of the save menu.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2395-2399",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2395-L2399"
    }
   ]
  },
  {
   "id": "save_as",
   "name": "Save as",
   "how_to_get_there": "Select this row in SAVE.",
   "what_it_is": "A row of the save menu.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2400-2405",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2400-L2405"
    }
   ]
  },
  {
   "id": "save_song",
   "name": "Save song and scenes",
   "how_to_get_there": "Select this row in SAVE.",
   "what_it_is": "A row of the save menu.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2406",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2406"
    }
   ]
  },
  {
   "id": "clear_pattern",
   "name": "Clear working pattern",
   "how_to_get_there": "Select this row in SAVE.",
   "what_it_is": "A row of the save menu.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2407-2412",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2407-L2412"
    }
   ]
  },
  {
   "id": "event_count",
   "name": "Count events",
   "how_to_get_there": "Select this row in SAVE.",
   "what_it_is": "A row of the save menu.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2414-2416",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2414-L2416"
    }
   ]
  },
  {
   "id": "boot",
   "name": "Startup",
   "how_to_get_there": "Switch the FM-1 on.",
   "what_it_is": "The logo before the mixer opens.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "2041-2047",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2041-L2047"
    }
   ]
  },
  {
   "id": "home",
   "name": "BX-1 console",
   "how_to_get_there": "Press HOME from a machine.",
   "what_it_is": "Shows six track strips, the current pattern and transport status.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "474-508",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L474-L508"
    }
   ]
  },
  {
   "id": "mix_console",
   "name": "Mixer faders",
   "how_to_get_there": "No panel route opens this separate fader page in this release.",
   "what_it_is": "Shows six track levels and the selected track.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "510-543",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L510-L543"
    }
   ]
  },
  {
   "id": "scenes",
   "name": "Scenes",
   "how_to_get_there": "Cycle HOME to SCENES.",
   "what_it_is": "Shows four scenes and their recall or store status.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1810-1842",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1810-L1842"
    }
   ]
  },
  {
   "id": "song",
   "name": "Song",
   "how_to_get_there": "Hold HOME and press SEQ.",
   "what_it_is": "Shows the ordered pattern and scene positions and repeats.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1755-1774",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1755-L1774"
    }
   ]
  },
  {
   "id": "global",
   "name": "Tempo",
   "how_to_get_there": "Press GLO.",
   "what_it_is": "Shows tempo, swing, pattern-change length, drive, automatic fill and project transpose.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1723-1736",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1723-L1736"
    }
   ]
  },
  {
   "id": "system",
   "name": "System",
   "how_to_get_there": "Hold HOME for two seconds.",
   "what_it_is": "Shows clock and sync settings, automatic saving, idle lights, experimental performance options, sample and sound counts, language and version.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1686-1720",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1686-L1720"
    }
   ]
  },
  {
   "id": "save_menu",
   "name": "Save",
   "how_to_get_there": "Press SAVE.",
   "what_it_is": "Shows saving, destination, song and scene saving, pattern clearing and event-count rows.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1739-1752",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1739-L1752"
    }
   ]
  },
  {
   "id": "time",
   "name": "Time",
   "how_to_get_there": "Hold SEQ for two seconds.",
   "what_it_is": "Shows lengths and rates for all six tracks.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1776-1808",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1776-L1808"
    }
   ]
  },
  {
   "id": "copy_channel",
   "name": "Copy channel",
   "how_to_get_there": "Hold HOME and press EDIT.",
   "what_it_is": "Shows the compatible destination track for a copy.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1844-1867",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1844-L1867"
    }
   ]
  },
  {
   "id": "scale_global",
   "name": "Project scale",
   "how_to_get_there": "Hold HOME and press SEL.",
   "what_it_is": "Shows project scale and keyboard constraints.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_ui_draw.c",
     "lines": "1589-1606",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1589-L1606"
    }
   ]
  },
  {
   "id": "fx_delay",
   "name": "Delay effects",
   "how_to_get_there": "Hold HOME and press FX, then select Delay.",
   "what_it_is": "Delay settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3439-3442",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3439-L3442"
    }
   ]
  },
  {
   "id": "fx_reverb",
   "name": "Reverb effects",
   "how_to_get_there": "Hold HOME and press FX, then select Reverb.",
   "what_it_is": "Reverb settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3439-3442",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3439-L3442"
    }
   ]
  },
  {
   "id": "fx_master",
   "name": "Master effects",
   "how_to_get_there": "Hold HOME and press FX, then select Master.",
   "what_it_is": "Master settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3439-3442",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3439-L3442"
    }
   ]
  },
  {
   "id": "seq_drums",
   "name": "Drum steps",
   "how_to_get_there": "Press SEQ on BR-8.",
   "what_it_is": "The BR-8 step grid with drum macros; BP-1 has its own Pad steps context.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "seq_pads",
   "name": "Pad steps",
   "how_to_get_there": "Press SEQ on BP-1.",
   "what_it_is": "Shows the pad-step grid and selected pad.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "seq_notes",
   "name": "Note steps",
   "how_to_get_there": "Press SEQ on a note track.",
   "what_it_is": "Shows note starts, note lengths and the playhead.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "sound_drums",
   "name": "Drum sound",
   "how_to_get_there": "Press EDIT on BR-8.",
   "what_it_is": "Shows the kit and its shared sound macros.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "mix_track",
   "name": "Track mix",
   "how_to_get_there": "Press FX inside a machine.",
   "what_it_is": "Shows track level, pan, delay send and reverb send.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "duck",
   "name": "Track ducking",
   "how_to_get_there": "Press FX again inside a machine.",
   "what_it_is": "Shows ducking amount, using track 1 as its trigger.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "more",
   "name": "More track settings",
   "how_to_get_there": "Turn SELECT to MORE.",
   "what_it_is": "Shows settings that apply to the selected machine.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "break",
   "name": "Break generator",
   "how_to_get_there": "Press SEQ again on BP-1.",
   "what_it_is": "Shows generated pad-variation settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "takes",
   "name": "Take library",
   "how_to_get_there": "Hold EDIT for two seconds on BP-1 or navigate to TAKES.",
   "what_it_is": "Shows recorded samples, a waveform and available sample room.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "recorder",
   "name": "Sampler recorder",
   "how_to_get_there": "Press REC on BP-1.",
   "what_it_is": "Shows sampling status and any unsaved take.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "arp",
   "name": "Arpeggiator",
   "how_to_get_there": "Press ARP on a note track.",
   "what_it_is": "Shows arpeggiator direction, rate, octave span and gate.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "loop",
   "name": "Note loop",
   "how_to_get_there": "Press SEQ again on a note track.",
   "what_it_is": "Shows loop status and loop length.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "midi",
   "name": "MIDI control",
   "how_to_get_there": "No panel route opens this page in this release.",
   "what_it_is": "Shows outgoing channel, program and controller values.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "scale_track",
   "name": "Track scale",
   "how_to_get_there": "Press SEL inside a machine.",
   "what_it_is": "Shows the track scale or its project inheritance.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "chords",
   "name": "Chord pads",
   "how_to_get_there": "Press SEL again inside a machine.",
   "what_it_is": "Shows chord pads, voicing and strum choices.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "machine",
   "name": "Machine chooser",
   "how_to_get_there": "Turn SELECT left from SOUND or select MACHINE in MORE.",
   "what_it_is": "Shows five note-machine choices and the load countdown.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "911-941",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L911-L941"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3158",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3158"
    }
   ]
  },
  {
   "id": "acid_vco_vcf",
   "name": "BB-303 / VCO VCF",
   "how_to_get_there": "Press EDIT inside BB-303 and use SELECT or EDIT to reach VCO VCF.",
   "what_it_is": "The VCO VCF page for BB-303.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "29-30",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L29-L30"
    }
   ]
  },
  {
   "id": "acid_env",
   "name": "BB-303 / ENV",
   "how_to_get_there": "Press EDIT inside BB-303 and use SELECT or EDIT to reach ENV.",
   "what_it_is": "The ENV page for BB-303.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "31-33",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L31-L33"
    }
   ]
  },
  {
   "id": "mini_control",
   "name": "B-MINI / CONTROL",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach CONTROL.",
   "what_it_is": "The CONTROL page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "50-51",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L50-L51"
    }
   ]
  },
  {
   "id": "mini_osc_1",
   "name": "B-MINI / OSC 1",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach OSC 1.",
   "what_it_is": "The OSC 1 page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "52",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L52"
    }
   ]
  },
  {
   "id": "mini_osc_2",
   "name": "B-MINI / OSC 2",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach OSC 2.",
   "what_it_is": "The OSC 2 page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "53-54",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L53-L54"
    }
   ]
  },
  {
   "id": "mini_osc_3",
   "name": "B-MINI / OSC 3",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach OSC 3.",
   "what_it_is": "The OSC 3 page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "55-56",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L55-L56"
    }
   ]
  },
  {
   "id": "mini_mixer",
   "name": "B-MINI / MIXER",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach MIXER.",
   "what_it_is": "The MIXER page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "57-58",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L57-L58"
    }
   ]
  },
  {
   "id": "mini_filter",
   "name": "B-MINI / FILTER",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach FILTER.",
   "what_it_is": "The FILTER page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "59-60",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L59-L60"
    }
   ]
  },
  {
   "id": "mini_f_contour",
   "name": "B-MINI / F CONTOUR",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach F CONTOUR.",
   "what_it_is": "The F CONTOUR page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "61-62",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L61-L62"
    }
   ]
  },
  {
   "id": "mini_l_contour",
   "name": "B-MINI / L CONTOUR",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach L CONTOUR.",
   "what_it_is": "The L CONTOUR page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "63-64",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L63-L64"
    }
   ]
  },
  {
   "id": "mini_output",
   "name": "B-MINI / OUTPUT",
   "how_to_get_there": "Press EDIT inside B-MINI and use SELECT or EDIT to reach OUTPUT.",
   "what_it_is": "The OUTPUT page for B-MINI.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "65-67",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L65-L67"
    }
   ]
  },
  {
   "id": "fm_algorithm",
   "name": "BX-7 / ALGORITHM",
   "how_to_get_there": "Press EDIT inside BX-7 and use SELECT or EDIT to reach ALGORITHM.",
   "what_it_is": "The ALGORITHM page for BX-7.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "71-72",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L71-L72"
    }
   ]
  },
  {
   "id": "fm_eg",
   "name": "BX-7 / EG",
   "how_to_get_there": "Press EDIT inside BX-7 and use SELECT or EDIT to reach EG.",
   "what_it_is": "The EG page for BX-7.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "73-74",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L73-L74"
    }
   ]
  },
  {
   "id": "fm_voice",
   "name": "BX-7 / VOICE",
   "how_to_get_there": "Press EDIT inside BX-7 and use SELECT or EDIT to reach VOICE.",
   "what_it_is": "The VOICE page for BX-7.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "75",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L75"
    }
   ]
  },
  {
   "id": "fm_lfo",
   "name": "BX-7 / LFO",
   "how_to_get_there": "Press EDIT inside BX-7 and use SELECT or EDIT to reach LFO.",
   "what_it_is": "The LFO page for BX-7.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "76-78",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L76-L78"
    }
   ]
  },
  {
   "id": "bittal_osc_1",
   "name": "BITTAL / OSC 1",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach OSC 1.",
   "what_it_is": "The OSC 1 page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "113-114",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L113-L114"
    }
   ]
  },
  {
   "id": "bittal_osc_1_plus",
   "name": "BITTAL / OSC 1 +",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach OSC 1 +.",
   "what_it_is": "The OSC 1 + page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "115-116",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L115-L116"
    }
   ]
  },
  {
   "id": "bittal_osc_2",
   "name": "BITTAL / OSC 2",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach OSC 2.",
   "what_it_is": "The OSC 2 page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "117-118",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L117-L118"
    }
   ]
  },
  {
   "id": "bittal_osc_2_plus",
   "name": "BITTAL / OSC 2 +",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach OSC 2 +.",
   "what_it_is": "The OSC 2 + page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "119-120",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L119-L120"
    }
   ]
  },
  {
   "id": "bittal_filter",
   "name": "BITTAL / FILTER",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach FILTER.",
   "what_it_is": "The FILTER page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "121-122",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L121-L122"
    }
   ]
  },
  {
   "id": "bittal_filter_plus",
   "name": "BITTAL / FILTER +",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach FILTER +.",
   "what_it_is": "The FILTER + page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "123-124",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L123-L124"
    }
   ]
  },
  {
   "id": "bittal_env_1",
   "name": "BITTAL / ENV 1",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach ENV 1.",
   "what_it_is": "The ENV 1 page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "125-126",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L125-L126"
    }
   ]
  },
  {
   "id": "bittal_env_2",
   "name": "BITTAL / ENV 2",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach ENV 2.",
   "what_it_is": "The ENV 2 page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "127-128",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L127-L128"
    }
   ]
  },
  {
   "id": "bittal_lfo_1",
   "name": "BITTAL / LFO 1",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach LFO 1.",
   "what_it_is": "The LFO 1 page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "129-130",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L129-L130"
    }
   ]
  },
  {
   "id": "bittal_macro_1_2",
   "name": "BITTAL / MACRO 1-2",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach MACRO 1-2.",
   "what_it_is": "The MACRO 1-2 page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "131-132",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L131-L132"
    }
   ]
  },
  {
   "id": "bittal_macro_3_4",
   "name": "BITTAL / MACRO 3-4",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach MACRO 3-4.",
   "what_it_is": "The MACRO 3-4 page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "133-134",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L133-L134"
    }
   ]
  },
  {
   "id": "bittal_voice",
   "name": "BITTAL / VOICE",
   "how_to_get_there": "Press EDIT inside BITTAL and use SELECT or EDIT to reach VOICE.",
   "what_it_is": "The VOICE page for BITTAL.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "135-137",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L135-L137"
    }
   ]
  },
  {
   "id": "buno_lfo",
   "name": "BUNO-6 / LFO",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach LFO.",
   "what_it_is": "The LFO page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "89",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L89"
    }
   ]
  },
  {
   "id": "buno_dco",
   "name": "BUNO-6 / DCO",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach DCO.",
   "what_it_is": "The DCO page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "90-91",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L90-L91"
    }
   ]
  },
  {
   "id": "buno_dco_wave",
   "name": "BUNO-6 / DCO WAVE",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach DCO WAVE.",
   "what_it_is": "The DCO WAVE page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "92-93",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L92-L93"
    }
   ]
  },
  {
   "id": "buno_hpf_vcf",
   "name": "BUNO-6 / HPF VCF",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach HPF VCF.",
   "what_it_is": "The HPF VCF page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "94-95",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L94-L95"
    }
   ]
  },
  {
   "id": "buno_vcf_mod",
   "name": "BUNO-6 / VCF MOD",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach VCF MOD.",
   "what_it_is": "The VCF MOD page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "96-97",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L96-L97"
    }
   ]
  },
  {
   "id": "buno_vca",
   "name": "BUNO-6 / VCA",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach VCA.",
   "what_it_is": "The VCA page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "98",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L98"
    }
   ]
  },
  {
   "id": "buno_env",
   "name": "BUNO-6 / ENV",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach ENV.",
   "what_it_is": "The ENV page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "99-100",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L99-L100"
    }
   ]
  },
  {
   "id": "buno_chorus",
   "name": "BUNO-6 / CHORUS",
   "how_to_get_there": "Press EDIT inside BUNO-6 and use SELECT or EDIT to reach CHORUS.",
   "what_it_is": "The CHORUS page for BUNO-6.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "101-102",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L101-L102"
    }
   ]
  },
  {
   "id": "instrument_hit",
   "name": "Drum instrument / HIT",
   "how_to_get_there": "On BR-8, press EDIT to SOUND and EDIT again to HIT, or press ENV from outside INSTR; SELECT can also choose the page.",
   "what_it_is": "The HIT page for Drum instrument.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "164-165",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L164-L165"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2085-2097",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2085-L2097"
    }
   ]
  },
  {
   "id": "instrument_instrument",
   "name": "Drum instrument / INSTRUMENT",
   "how_to_get_there": "On BR-8, enter HIT with EDIT again from SOUND or ENV, then use SELECT or EDIT to reach INSTRUMENT.",
   "what_it_is": "The INSTRUMENT page for Drum instrument.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_params.c",
     "lines": "166-168",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L166-L168"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "2085-2097",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2085-L2097"
    }
   ]
  },
  {
   "id": "pads_trim",
   "name": "BP-1 / TRIM",
   "how_to_get_there": "Press EDIT on BP-1 and use SELECT or EDIT to reach TRIM.",
   "what_it_is": "The selected pad trim settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3218-3223",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3218-L3223"
    }
   ]
  },
  {
   "id": "pads_sound",
   "name": "BP-1 / SOUND",
   "how_to_get_there": "Press EDIT on BP-1 and use SELECT or EDIT to reach SOUND.",
   "what_it_is": "The selected pad sound settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1554-1558",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1554-L1558"
    }
   ]
  },
  {
   "id": "pads_env",
   "name": "BP-1 / ENV",
   "how_to_get_there": "Press EDIT on BP-1 and use SELECT or EDIT to reach ENV.",
   "what_it_is": "The selected pad env settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1564-1569",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1564-L1569"
    }
   ]
  },
  {
   "id": "pads_loop",
   "name": "BP-1 / LOOP",
   "how_to_get_there": "Press EDIT on BP-1 and use SELECT or EDIT to reach LOOP.",
   "what_it_is": "The selected pad loop settings.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1559-1563",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1559-L1563"
    }
   ]
  },
  {
   "id": "home_controller",
   "name": "Controller",
   "how_to_get_there": "Hold HOME.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "tone",
   "name": "Pitch layer",
   "how_to_get_there": "Hold GLO.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "length",
   "name": "Length layer",
   "how_to_get_there": "Hold SEQ.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "accent",
   "name": "Accent layer",
   "how_to_get_there": "Hold ENV.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "repeat",
   "name": "Repeat or tie layer",
   "how_to_get_there": "Hold LFO, or latch it on a machine without an LFO page.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "roll",
   "name": "Roll layer",
   "how_to_get_there": "Hold ARP on a grid machine.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "punch",
   "name": "Punch effects",
   "how_to_get_there": "Hold FX.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "chord_layer",
   "name": "Held chords",
   "how_to_get_there": "Hold SEL.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "arp_keys",
   "name": "Held arpeggiator",
   "how_to_get_there": "Hold ARP on a note track.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    }
   ]
  },
  {
   "id": "fill_steps",
   "name": "Fill layer",
   "how_to_get_there": "Inside BR-8 or BP-1, press or hold black key 11 on any track page except PADS, TAKES, RECORD or CHORDS; on note tracks use SEQ.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1903-1932",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1903-L1932"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1935-1943",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1935-L1943"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1964-1985",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1985"
    }
   ]
  },
  {
   "id": "lane_mute",
   "name": "Lane mute layer",
   "how_to_get_there": "Inside BR-8 or BP-1, press or hold black key 10 on any track page except PADS, TAKES, RECORD or CHORDS.",
   "what_it_is": "This layer takes priority over the ordinary page controls.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3311-3357",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3311-L3357"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1903-1918",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1903-L1918"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1935-1943",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1935-L1943"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1964-1985",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1985"
    }
   ]
  },
  {
   "id": "held_step_drums",
   "name": "Held grid step",
   "how_to_get_there": "Hold an occupied white SEQ step key.",
   "what_it_is": "These step edits override the page-navigation encoders.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3359-3366",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3359-L3366"
    }
   ]
  },
  {
   "id": "held_step_notes",
   "name": "Held note step",
   "how_to_get_there": "Hold an occupied white SEQ step key.",
   "what_it_is": "These step edits override the page-navigation encoders.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3359-3366",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3359-L3366"
    }
   ]
  },
  {
   "id": "rec_notes",
   "name": "Note REC editing",
   "how_to_get_there": "Enable REC on note SEQ without holding a step.",
   "what_it_is": "These step edits override the page-navigation encoders.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3359-3366",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3359-L3366"
    }
   ]
  },
  {
   "id": "seq_acid",
   "name": "BB-303 sequencer",
   "how_to_get_there": "Select BB-303 on a note track and press SEQ.",
   "what_it_is": "Note steps with BB-303 sound macros.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3162",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3162"
    }
   ]
  },
  {
   "id": "seq_mini",
   "name": "B-MINI sequencer",
   "how_to_get_there": "Select B-MINI on a note track and press SEQ.",
   "what_it_is": "Note steps with B-MINI sound macros.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3162",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3162"
    }
   ]
  },
  {
   "id": "seq_fm",
   "name": "BX-7 sequencer",
   "how_to_get_there": "Select BX-7 on a note track and press SEQ.",
   "what_it_is": "Note steps with BX-7 sound macros.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3162",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3162"
    }
   ]
  },
  {
   "id": "seq_bittal",
   "name": "BITTAL sequencer",
   "how_to_get_there": "Select BITTAL on a note track and press SEQ.",
   "what_it_is": "Note steps with BITTAL sound macros.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3162",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3162"
    }
   ]
  },
  {
   "id": "seq_buno",
   "name": "BUNO-6 sequencer",
   "how_to_get_there": "Select BUNO-6 on a note track and press SEQ.",
   "what_it_is": "Note steps with BUNO-6 sound macros.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3132-3162",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3132-L3162"
    }
   ]
  },
  {
   "id": "erase",
   "name": "Erase layer",
   "how_to_get_there": "Hold EDIT for at least 300 ms.",
   "what_it_is": "Clear events, copy or paste a track, or capture sampler BREAK changes.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1828-1857",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1857"
    }
   ]
  },
  {
   "id": "copy_pattern",
   "name": "Copy pattern layer",
   "how_to_get_there": "Stop playback, then hold SAVE for at least 300 ms.",
   "what_it_is": "Copy the current pattern or one track to another pattern slot.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1877-1893",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
    }
   ]
  },
  {
   "id": "note_keyboard",
   "name": "Chromatic note keyboard",
   "how_to_get_there": "Open a note machine page other than SEQ, CHORDS or SCALE, with KEYS IN SCALE off; SCALE uses scale notes even with that switch off.",
   "what_it_is": "The keyboard plays chromatically; ordinary global screens use the selected machine too.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1106-1137",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1106-L1137"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1935-1945",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1935-L1945"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1983-2017",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L2017"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1119-1136",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1136"
    }
   ]
  },
  {
   "id": "scale_keyboard",
   "name": "Scale keyboard",
   "how_to_get_there": "Open a note track SCALE page, or enable KEYS IN SCALE on a playable note or global page other than SEQ or CHORDS.",
   "what_it_is": "White keys follow the scale, the first seven black keys play its chords, and the last four extend them.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1119-1132",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1132"
    }
   ]
  },
  {
   "id": "grid_keyboard",
   "name": "Grid machine keyboard outside SEQ",
   "how_to_get_there": "Open a drum or pad machine page other than SEQ, PADS, TAKES or REC.",
   "what_it_is": "White keys select and strike the sixteen elements; black keys retain the grid selector jobs.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1107-1118",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1983-1985",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
    }
   ]
  },
  {
   "id": "chip_mode",
   "name": "Chip recovery",
   "how_to_get_there": "Hold both OCT buttons for over five seconds, or power on after four consecutive starts that did not reach successful operation.",
   "what_it_is": "The chip update connection replaces MIDI; quick power cycles before ten seconds can count as failed starts, so use the computer recovery tool if MIDI disappears.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_boot.c",
     "lines": "23-27",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L23-L27"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_boot.c",
     "lines": "100-116",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L100-L116"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_main.c",
     "lines": "901-904",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L901-L904"
    },
    {
     "kind": "doc",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "docs/en/INSTALL.md",
     "lines": "61-70",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/INSTALL.md#L61-L70"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_main.c",
     "lines": "710-714",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L710-L714"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_main.c",
     "lines": "843-850",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L843-L850"
    }
   ]
  }
 ],
 "controls": {
  "button_fx": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "A tap opens track MIX and another toggles DUCK; on the master effects screen it cycles DELAY, REVERB and MASTER.",
    "short_label": "TRACK MIX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2070-2072",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2070-L2072"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2110-2113",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2110-L2113"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds the live punch-in effects layer.",
    "short_label": "PUNCH IN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Releases any punch-in effect and closes the held layer.",
    "short_label": "END PUNCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2056-2067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2056-L2067"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Opens project DELAY or advances DELAY, REVERB and MASTER when already there.",
    "short_label": "MASTER FX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2134",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2134"
     }
    ]
   }
  ],
  "button_sel": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "A tap opens the track’s SCALE page and another opens CHORDS.",
    "short_label": "SCALE CHORDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2114",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2114"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds the playable chord layer.",
    "short_label": "LIVE CHORDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Closes the held chord layer.",
    "short_label": "EXIT CHORDS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2056-2067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2056-L2067"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Opens the project SCALE page.",
    "short_label": "PROJECT SCL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2135",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2135"
     }
    ]
   }
  ],
  "button_env": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "track_drums",
    "gesture": "press",
    "action": "A tap opens INSTR for the selected drum instrument.",
    "short_label": "INSTR",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2095-2098",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2095-L2098"
     }
    ]
   },
   {
    "mode": "track_pads",
    "gesture": "press",
    "action": "A tap opens the selected pad’s ENV page.",
    "short_label": "PAD ENV",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2095-2098",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2095-L2098"
     }
    ]
   },
   {
    "mode": "track_notes",
    "gesture": "press",
    "action": "A tap opens the first envelope and another toggles the second.",
    "short_label": "ENVELOPES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2098-2103",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2098-L2103"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds the accent-painting layer.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Closes the held accent layer.",
    "short_label": "EXIT ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2056-2067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2056-L2067"
     }
    ]
   }
  ],
  "button_lfo": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "A tap opens an available LFO page, otherwise latches the repeat or tie layer; another LFO tap closes that latched layer.",
    "short_label": "LFO OR TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1280-1293",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1280-L1293"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2105-2108",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2105-L2108"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2294-2306",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2294-L2306"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds repeat painting on drums and pads or tie painting on note tracks.",
    "short_label": "REPEAT TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Closes the held repeat or tie layer.",
    "short_label": "EXIT REPEAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2056-2067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2056-L2067"
     }
    ]
   }
  ],
  "button_edit": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "track_drums",
    "gesture": "press",
    "action": "A tap cycles SOUND and the two INSTR pages.",
    "short_label": "DRUM SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2085-2088",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2085-L2088"
     }
    ]
   },
   {
    "mode": "track_pads",
    "gesture": "press",
    "action": "A tap opens PADS and repeated taps cycle TRIM, SOUND, ENV and LOOP.",
    "short_label": "PAD EDIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2080-2084",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2080-L2084"
     }
    ]
   },
   {
    "mode": "track_notes",
    "gesture": "press",
    "action": "A tap opens the last SOUND page and further taps cycle its pages.",
    "short_label": "SOUND PAGES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2084-2093",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2084-L2093"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds the erase layer; white-key erasing changes the working sequence and can use HOME + OCT−.",
    "short_label": "ERASE LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1140",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1140"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Stops live erasing and closes the held erase layer.",
    "short_label": "EXIT ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2056-2067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2056-L2067"
     }
    ]
   },
   {
    "mode": "track_pads",
    "gesture": "long_press",
    "action": "After two seconds without touching another control, opens TAKES.",
    "short_label": "TAKES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2454-2459",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2454-L2459"
     }
    ]
   },
   {
    "mode": "track_drums",
    "gesture": "long_press",
    "action": "After two seconds without touching another control, asks to replace this track’s sound with initial settings; OCT+ changes the working sound without a sound undo copy and a later pattern save makes it permanent.",
    "short_label": "INIT SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2454-2459",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2454-L2459"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1058-1067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1058-L1067"
     }
    ]
   },
   {
    "mode": "track_notes",
    "gesture": "long_press",
    "action": "After two seconds without touching another control, asks to replace this track’s sound with initial settings; OCT+ changes the working sound without a sound undo copy and a later pattern save makes it permanent.",
    "short_label": "INIT SOUND",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2454-2459",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2454-L2459"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1058-1067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1058-L1067"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Opens a copy to another compatible track in this pattern; the sampler cannot be copied this way.",
    "short_label": "COPY CHANNEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2137-2148",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2137-L2148"
     }
    ]
   }
  ],
  "button_glo": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "A tap opens the global list and another returns to the previous page.",
    "short_label": "GLOBAL LIST",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2384-2389",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2384-L2389"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds the project pitch layer with PLAY used for tap tempo.",
    "short_label": "PITCH TAP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2310-2313",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2310-L2313"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Closes the held pitch layer.",
    "short_label": "EXIT PITCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2384-2389",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2384-L2389"
     }
    ]
   }
  ],
  "button_home": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "A tap returns from a track to the mixer or from a global page to its previous page; clean taps on the console cycle MIX, FX, TEMPO, SCENES and SONG.",
    "short_label": "HOME",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2427-2447",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2427-L2447"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_gesture.c",
      "lines": "57-76",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_gesture.c#L57-L76"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms, or as soon as another control is used, holds the pattern, mute, scene and fill controller over the current page.",
    "short_label": "CONTROLLER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_gesture.c",
      "lines": "37-44",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_gesture.c#L37-L44"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59-60",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59-L60"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Closes the held controller and applies the chosen pattern or track; a different stopped pattern immediately saves dirty current and pending patterns without asking even with autosave off, with no flash undo.",
    "short_label": "APPLY CHOICE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2442-2447",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2442-L2447"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1099",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1099"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "long_press",
    "action": "After two seconds without using another control, opens SYSTEM.",
    "short_label": "SYSTEM",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2442-2447",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2442-L2447"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_gesture.c",
      "lines": "79-94",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_gesture.c#L79-L94"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "With an unsaved stopped recording, asks whether to discard it; OCT+ discards the RAM take without undo, while cancelling keeps it for the automatic stopped save.",
    "short_label": "LEAVE TAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2427-2431",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2427-L2431"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2204-2206",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2204-L2206"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1150-1152",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1150-L1152"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "press",
    "action": "Leaves the channel-copy screen without pasting.",
    "short_label": "CANCEL COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2433",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2433"
     }
    ]
   }
  ],
  "button_save": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "A tap opens the save menu; while it is open, SAVE executes its highlighted row.",
    "short_label": "SAVE MENU",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2391-2418",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2391-L2418"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds the pattern-copy layer.",
    "short_label": "COPY PATTERN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Closes the held pattern-copy layer.",
    "short_label": "EXIT COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2419-2420",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2419-L2420"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "long_press",
    "action": "After two seconds untouched, writes the current and pending changed pattern while stopped without asking or flash undo; while playing the request is rejected, and this does not save song or settings.",
    "short_label": "QUICK SAVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2421-2424",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2421-L2424"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Opens SAVE AS with the next pattern selected; no data is written until SAVE executes it.",
    "short_label": "SAVE AS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2136",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2136"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2400-2405",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2400-L2405"
     }
    ]
   },
   {
    "mode": "save_current",
    "gesture": "press",
    "action": "Writes the current pattern and any pending previous pattern while stopped without confirmation or flash undo; a request during playback is rejected.",
    "short_label": "WRITE PAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2395-2399",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2395-L2399"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "632-657",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L657"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "save_as",
    "gesture": "press",
    "action": "Writes the pattern into the chosen slot and selects it while stopped without an overwrite question or flash undo; it also flushes a pending previous pattern and rejects playback saves.",
    "short_label": "WRITE AS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2400-2405",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2400-L2405"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "632-657",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L657"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "save_song",
    "gesture": "press",
    "action": "Writes the song and its four scenes while stopped without asking or flash undo; a request during playback is rejected.",
    "short_label": "WRITE SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2406",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2406"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "632-657",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L657"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "clear_pattern",
    "gesture": "press",
    "action": "A second SAVE tap within three seconds clears the six working sequences without a question or new undo copy; flash changes only on a later pattern save or autosave.",
    "short_label": "CLEAR PAT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2407-2412",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2407-L2412"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "632-657",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L657"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "event_count",
    "gesture": "press",
    "action": "Shows the number of sequence events without writing flash.",
    "short_label": "EVENT COUNT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2414-2416",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2414-L2416"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "632-657",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L657"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   }
  ],
  "button_arp": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "track_drums",
    "gesture": "press",
    "action": "A tap latches the ROLL screen and another closes it.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2284-2293",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2284-L2293"
     }
    ]
   },
   {
    "mode": "track_drums",
    "gesture": "hold",
    "action": "Holds ROLL only until release, including when it was already latched.",
    "short_label": "ROLL HOLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2284-2293",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2284-L2293"
     }
    ]
   },
   {
    "mode": "track_pads",
    "gesture": "press",
    "action": "A tap latches the ROLL screen and another closes it.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2284-2293",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2284-L2293"
     }
    ]
   },
   {
    "mode": "track_pads",
    "gesture": "hold",
    "action": "Holds ROLL only until release, including when it was already latched.",
    "short_label": "ROLL HOLD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2284-2293",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2284-L2293"
     }
    ]
   },
   {
    "mode": "track_notes",
    "gesture": "press",
    "action": "A tap opens the track’s ARP settings.",
    "short_label": "ARP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2115",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2115"
     }
    ]
   },
   {
    "mode": "track_notes",
    "gesture": "hold",
    "action": "After 300 ms temporarily enables the track’s arpeggiator while holding its playable key layer.",
    "short_label": "LIVE ARP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2039-2048",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2039-L2048"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Stops a held roll or temporary arpeggiator and closes its layer.",
    "short_label": "END ARP ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2056-2067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2056-L2067"
     }
    ]
   }
  ],
  "button_seq": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "track_drums",
    "gesture": "press",
    "action": "A tap opens SEQ for the selected drum track.",
    "short_label": "STEPS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2076-2079",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2076-L2079"
     }
    ]
   },
   {
    "mode": "track_pads",
    "gesture": "press",
    "action": "A tap opens SEQ or switches from SEQ to BREAK.",
    "short_label": "PAD STEPS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2076-2079",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2076-L2079"
     }
    ]
   },
   {
    "mode": "track_notes",
    "gesture": "press",
    "action": "A tap opens SEQ or switches from SEQ to LOOP.",
    "short_label": "NOTE STEPS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2076-2079",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2076-L2079"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "After 300 ms holds the track-length and speed layer.",
    "short_label": "LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2022-2053",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2022-L2053"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Closes the held length layer.",
    "short_label": "EXIT LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2056-2067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2056-L2067"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "long_press",
    "action": "After two seconds with no other control used, opens the six-track TIME screen.",
    "short_label": "TIME",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2451-2456",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2451-L2456"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Opens the project SONG screen.",
    "short_label": "SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2133",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2133"
     }
    ]
   }
  ],
  "button_rec": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question on a tap; HOME stays put and another page button can also open its page.",
    "short_label": "CANCEL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "A tap toggles sequence recording except on the sampler recorder, LOOP or SCENES; enabling takes a sequence undo copy and an empty stopped note track can start free recording.",
    "short_label": "NOTE REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2341-2359",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2341-L2359"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1615-1653",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1615-L1653"
     }
    ]
   },
   {
    "mode": "track_pads",
    "gesture": "press",
    "action": "Outside PADS and ROLL, a tap opens RECORD and arms or starts audio capture according to START; a further tap stops or disarms, and full take memory refuses capture.",
    "short_label": "SAMPLE REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2343-2349",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2343-L2349"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "hold",
    "action": "After 300 ms starts audio capture immediately for the held duration if take memory has room; the new take is saved automatically once capture and transport are stopped.",
    "short_label": "HOLD CAPTURE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2360-2365",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2360-L2365"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1150-1152",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1150-L1152"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "hold",
    "action": "Outside RECORD, enables sequence recording only while held and takes a sequence undo copy.",
    "short_label": "HOLD REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2366-2369",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2366-L2369"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "release",
    "action": "Stops held audio capture or restores the sequence-recording state that preceded the hold.",
    "short_label": "RESTORE REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2371-2375",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2371-L2375"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "long_press",
    "action": "After two untouched seconds on a track page other than RECORD, TAKES or LOOP, with no keys held or sampler or looper armed or recording and no intervening edit, clears the step sequence without asking; HOME + OCT− can undo and a later pattern save writes it.",
    "short_label": "ERASE TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2222-2236",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2222-L2236"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2371-2381",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2371-L2381"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1029-1036",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1029-L1036"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "press",
    "action": "Cycles the note looper between arm, record, play and overdub according to its current state; another tap cancels an armed empty loop.",
    "short_label": "LOOP REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2350",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2350"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "340-361",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L340-L361"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "long_press",
    "action": "After two seconds without using another control, clears the working note loop without asking or taking an undo copy; a later pattern save makes it permanent.",
    "short_label": "ERASE LOOP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2377-2381",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2377-L2381"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "340-361",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L340-L361"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Toggles recording scene launches and their repeat counts into the working song; SAVE SONG or stopped autosave writes it later.",
    "short_label": "SCENE REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2351",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2351"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1143-1148",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1143-L1148"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Toggles recording scene launches into the working song; stopped autosave or SAVE SONG writes it later.",
    "short_label": "SONG REC",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1143-1148",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1143-L1148"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   }
  ],
  "button_oct_down": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Cancels the question without changing the selected data.",
    "short_label": "NO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "Changes keyboard octave down within −2 to +2 except where these buttons choose step pages or answer a question.",
    "short_label": "OCT−",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2318-2339",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2318-L2339"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the selected line’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Moves among the four length ranges covering 1–64 steps.",
    "short_label": "LENGTH PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2322-2325",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2322-L2325"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Moves to the previous step page without leaving the layer.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Moves to the previous step page without leaving the layer.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Moves to the previous step page without leaving the layer.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Restores the undo sequence undo copy without asking; this does not restore flash, sound settings, samples or the whole project.",
    "short_label": "UNDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2321",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2321"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Restores the undo sequence undo copy without asking; flash changes only with a later pattern save.",
    "short_label": "UNDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2129-2130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2129-L2130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "press",
    "action": "Leaves channel copy without pasting.",
    "short_label": "BACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2327"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2154-2177",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2154-L2177"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "power_on_holding:button_oct_down+button_oct_up",
    "action": "Holding both OCT buttons at power-on selects safe USB recovery without sound; startup flash housekeeping still runs.",
    "short_label": "SAFE BOOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "740-745",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L740-L745"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_boot.c",
      "lines": "81-110",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L81-L110"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_with:button_oct_up",
    "action": "Holding both OCT buttons together for over five seconds resets into chip recovery without saving, discarding unsaved pattern, song, settings and recorded-take changes; stop and save the work first.",
    "short_label": "CHIP MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "843-850",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L843-L850"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_boot.c",
      "lines": "60-69",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L60-L69"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the selected line’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Moves to the previous 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   }
  ],
  "button_oct_up": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Confirms the named operation; a stopped take deletion is permanent, clears pads only in the current pattern and can make other patterns play a later recording or import that reuses its number, while track clearing still allows HOME + OCT− undo.",
    "short_label": "YES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2180-2208",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2180-L2208"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "690-697",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L690-L697"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1029-1036",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1029-L1036"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "690-697",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L690-L697"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_takes.c",
      "lines": "139-162",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_takes.c#L139-L162"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "Changes keyboard octave up within −2 to +2 except where these buttons choose step pages or answer a question.",
    "short_label": "OCT+",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2318-2339",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2318-L2339"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the selected line’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Moves among the four length ranges covering 1–64 steps.",
    "short_label": "LENGTH PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2322-2325",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2322-L2325"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Moves to the next step page without leaving the layer.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Moves to the next step page without leaving the layer.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Moves to the next step page without leaving the layer.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Restores the redo sequence undo copy without asking; this does not restore flash, sound settings, samples or the whole project.",
    "short_label": "REDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2321",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2321"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Restores the redo sequence undo copy without asking; flash changes only with a later pattern save.",
    "short_label": "REDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2129-2130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2129-L2130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "press",
    "action": "Copies the source sequence, engine and track settings except mute and MIDI channel into the target immediately without another question; undo restores only the target sequence, and a later pattern save writes flash.",
    "short_label": "PASTE CH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2327"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2154-2177",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2154-L2177"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "power_on_holding:button_oct_down+button_oct_up",
    "action": "Holding both OCT buttons at power-on selects safe USB recovery without sound; startup flash housekeeping still runs.",
    "short_label": "SAFE BOOT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "740-745",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L740-L745"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_boot.c",
      "lines": "81-110",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L81-L110"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_with:button_oct_down",
    "action": "Holding both OCT buttons together for over five seconds resets into chip recovery without saving, discarding unsaved pattern, song, settings and recorded-take changes; stop and save the work first.",
    "short_label": "CHIP MODE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "843-850",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L843-L850"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_boot.c",
      "lines": "60-69",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L60-L69"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the selected line’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Moves to the next 16-step page within the note track’s length.",
    "short_label": "STEP PAGE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2328-2334",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2328-L2334"
     }
    ]
   }
  ],
  "button_play_stop": [
   {
    "mode": "confirmation",
    "gesture": "press",
    "action": "Closes the question and then toggles playback.",
    "short_label": "CANCEL PLAY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2271-2282",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2271-L2282"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2310-2317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2310-L2317"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press",
    "action": "Starts or stops immediately; with external clock selected it waits for incoming MIDI pulses.",
    "short_label": "PLAY STOP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2310-2317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2310-L2317"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets tempo from successive taps without stopping playback, using up to the last four taps.",
    "short_label": "TAP TEMPO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2246-2259",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2246-L2259"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2310-2313",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2310-L2313"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "press_while_holding:button_home",
    "action": "Restarts from step one and starts playback if stopped.",
    "short_label": "RESTART",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2131",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2131"
     }
    ]
   },
   {
    "mode": "safe_mode",
    "gesture": "press",
    "action": "Leaves safe mode and starts the musical interface with audio output disabled, marking the recovery start successful.",
    "short_label": "START SILENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "705-708",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L705-L708"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "788-792",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L788-L792"
     }
    ]
   }
  ],
  "knob_master": [
   {
    "mode": "any",
    "gesture": "turn",
    "action": "Sets the overall output level from the physical volume pot without saving a pattern value.",
    "short_label": "VOLUME",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "900-907",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L900-L907"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_audio.c",
      "lines": "308",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_audio.c#L308"
     }
    ]
   }
  ],
  "screen": [
   {
    "mode": "boot",
    "gesture": "shows",
    "action": "Shows the Bubba logo and firmware version before the mixer opens.",
    "short_label": "STARTUP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2041-2047",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2041-L2047"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1105-1107",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1105-L1107"
     }
    ]
   },
   {
    "mode": "confirmation",
    "gesture": "shows",
    "action": "Shows the affected operation with OCT+ YES and HOME NO.",
    "short_label": "QUESTION",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1945-1956",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1945-L1956"
     }
    ]
   },
   {
    "mode": "safe_mode",
    "gesture": "shows",
    "action": "Shows recovery status, USB availability and the PLAY and two-OCT recovery choices.",
    "short_label": "RECOVERY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "310-343",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L310-L343"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "shows",
    "action": "A turned knob shows its value, with a small line for K1–K4 or a larger box for the three main encoders and tempo.",
    "short_label": "KNOB VALUE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1961-1995",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1961-L1995"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "shows",
    "action": "Shows a pending track or drum-instrument selection, including the release-HOME instruction for a held track choice.",
    "short_label": "TRACK BOX",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1917-1942",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1917-L1942"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "shows",
    "short_label": "BX-1 MIX",
    "action": "Shows six track strips, the current pattern and transport status.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "474-508",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L474-L508"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "shows",
    "short_label": "FADERS",
    "action": "Shows six track levels and the selected track.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "510-543",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L510-L543"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "shows",
    "short_label": "SCENES",
    "action": "Shows four scenes and their recall or store status.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1810-1842",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1810-L1842"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "shows",
    "short_label": "SONG",
    "action": "Shows the ordered pattern and scene positions and repeats.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1755-1774",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1755-L1774"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "shows",
    "short_label": "TEMPO",
    "action": "Shows tempo, swing, pattern-change length, drive, automatic fill and project transpose.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1723-1736",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1723-L1736"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "shows",
    "short_label": "SYSTEM",
    "action": "Shows clock and sync settings, automatic saving, idle lights, experimental performance options, sample and sound counts, language and version.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1686-1720",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1686-L1720"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "shows",
    "short_label": "SAVE",
    "action": "Shows saving, destination, song and scene saving, pattern clearing and event-count rows.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1739-1752",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1739-L1752"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "shows",
    "short_label": "TIME",
    "action": "Shows lengths and rates for all six tracks.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1776-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1776-L1808"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "shows",
    "short_label": "COPY CHANNEL",
    "action": "Shows the compatible destination track for a copy.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1844-1867",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1844-L1867"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "shows",
    "short_label": "PROJECT SCL",
    "action": "Shows project scale and keyboard constraints.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1589-1606",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1589-L1606"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "shows",
    "short_label": "DELAY",
    "action": "Shows delay effect settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1505-1533",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1505-L1533"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "shows",
    "short_label": "REVERB",
    "action": "Shows reverb effect settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1505-1533",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1505-L1533"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "shows",
    "short_label": "MASTER FX",
    "action": "Shows master effect settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1505-1533",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1505-L1533"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "shows",
    "short_label": "DRUM STEPS",
    "action": "Shows the drum-step grid and selected instrument.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2037",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2037"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "shows",
    "short_label": "PAD STEPS",
    "action": "Shows the pad-step grid and selected pad.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2037",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2037"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "shows",
    "short_label": "NOTE STEPS",
    "action": "Shows note starts, note lengths and the playhead.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2037",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2037"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "shows",
    "short_label": "DRUM SOUND",
    "action": "Shows the kit and its shared sound macros.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1330-1343",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1330-L1343"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "shows",
    "short_label": "TRACK MIX",
    "action": "Shows track level, pan, delay send and reverb send.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1347-1380",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1347-L1380"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "shows",
    "short_label": "DUCK",
    "action": "Shows ducking amount, using track 1 as its trigger.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1347-1380",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1347-L1380"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "shows",
    "short_label": "MORE",
    "action": "Shows settings that apply to the selected machine.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1382-1394",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1382-L1394"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "shows",
    "short_label": "BREAK",
    "action": "Shows generated pad-variation settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "966-983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L966-L983"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "shows",
    "short_label": "TAKES",
    "action": "Shows recorded samples, a waveform and available sample room.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1396-1449",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1396-L1449"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "shows",
    "short_label": "RECORD",
    "action": "Shows sampling status and any unsaved take.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1451-1503",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1451-L1503"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "shows",
    "short_label": "ARP",
    "action": "Shows arpeggiator direction, rate, octave span and gate.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1638-1655",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1638-L1655"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "shows",
    "short_label": "NOTE LOOP",
    "action": "Shows loop status and loop length.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1657-1684",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1657-L1684"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "shows",
    "short_label": "MIDI",
    "action": "Shows outgoing channel, program and controller values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2037",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2037"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "shows",
    "short_label": "TRACK SCALE",
    "action": "Shows the track scale or its project inheritance.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1589-1606",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1589-L1606"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "shows",
    "short_label": "CHORDS",
    "action": "Shows chord pads, voicing and strum choices.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1608-1636",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1608-L1636"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "shows",
    "short_label": "MACHINE",
    "action": "Shows five note-machine choices and the load countdown.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1297-1328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1297-L1328"
     }
    ]
   },
   {
    "mode": "acid_vco_vcf",
    "gesture": "shows",
    "short_label": "303 VCO VCF",
    "action": "Shows BB-303 VCO VCF parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "shows",
    "short_label": "303 ENV",
    "action": "Shows BB-303 ENV parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "shows",
    "short_label": "MINI CONTROL",
    "action": "Shows B-MINI CONTROL parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "shows",
    "short_label": "MINI OSC 1",
    "action": "Shows B-MINI OSC 1 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "shows",
    "short_label": "MINI OSC 2",
    "action": "Shows B-MINI OSC 2 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "shows",
    "short_label": "MINI OSC 3",
    "action": "Shows B-MINI OSC 3 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "shows",
    "short_label": "MINI MIXER",
    "action": "Shows B-MINI MIXER parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "shows",
    "short_label": "MINI FILTER",
    "action": "Shows B-MINI FILTER parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "shows",
    "short_label": "F CONTOUR",
    "action": "Shows B-MINI F CONTOUR parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "shows",
    "short_label": "L CONTOUR",
    "action": "Shows B-MINI L CONTOUR parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "shows",
    "short_label": "MINI OUTPUT",
    "action": "Shows B-MINI OUTPUT parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "shows",
    "short_label": "BX-7 ALG",
    "action": "Shows BX-7 ALGORITHM parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "shows",
    "short_label": "BX-7 EG",
    "action": "Shows BX-7 EG parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "shows",
    "short_label": "BX-7 VOICE",
    "action": "Shows BX-7 VOICE parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "shows",
    "short_label": "BX-7 LFO",
    "action": "Shows BX-7 LFO parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "shows",
    "short_label": "BT OSC 1",
    "action": "Shows BITTAL OSC 1 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "shows",
    "short_label": "BT OSC 1 +",
    "action": "Shows BITTAL OSC 1 + parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "shows",
    "short_label": "BT OSC 2",
    "action": "Shows BITTAL OSC 2 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "shows",
    "short_label": "BT OSC 2 +",
    "action": "Shows BITTAL OSC 2 + parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "shows",
    "short_label": "BT FILTER",
    "action": "Shows BITTAL FILTER parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "shows",
    "short_label": "BT FILTER +",
    "action": "Shows BITTAL FILTER + parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "shows",
    "short_label": "BT ENV 1",
    "action": "Shows BITTAL ENV 1 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "shows",
    "short_label": "BT ENV 2",
    "action": "Shows BITTAL ENV 2 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "shows",
    "short_label": "BT LFO",
    "action": "Shows BITTAL LFO 1 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "shows",
    "short_label": "BT MACRO 1-2",
    "action": "Shows BITTAL MACRO 1-2 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "shows",
    "short_label": "BT MACRO 3-4",
    "action": "Shows BITTAL MACRO 3-4 parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "shows",
    "short_label": "BT VOICE",
    "action": "Shows BITTAL VOICE parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "shows",
    "short_label": "BUNO LFO",
    "action": "Shows BUNO-6 LFO parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "shows",
    "short_label": "BUNO DCO",
    "action": "Shows BUNO-6 DCO parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "shows",
    "short_label": "DCO WAVE",
    "action": "Shows BUNO-6 DCO WAVE parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "shows",
    "short_label": "HPF VCF",
    "action": "Shows BUNO-6 HPF VCF parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "shows",
    "short_label": "VCF MOD",
    "action": "Shows BUNO-6 VCF MOD parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "shows",
    "short_label": "BUNO VCA",
    "action": "Shows BUNO-6 VCA parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "shows",
    "short_label": "BUNO ENV",
    "action": "Shows BUNO-6 ENV parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "shows",
    "short_label": "BUNO CHORUS",
    "action": "Shows BUNO-6 CHORUS parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "shows",
    "short_label": "DRUM HIT",
    "action": "Shows Drum instrument HIT parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "shows",
    "short_label": "DRUM INSTR",
    "action": "Shows Drum instrument INSTRUMENT parameter values.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1204-1238",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1204-L1238"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "shows",
    "short_label": "PAD TRIM",
    "action": "Shows the selected pad, waveform and trim controls.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "883-902",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L883-L902"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "904-920",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L904-L920"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "950-962",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L950-L962"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "shows",
    "short_label": "PAD SOUND",
    "action": "Shows the selected pad, waveform and sound controls.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "883-902",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L883-L902"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "904-920",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L904-L920"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "950-962",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L950-L962"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "shows",
    "short_label": "PAD ENV",
    "action": "Shows the selected pad, waveform and env controls.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "883-902",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L883-L902"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "904-920",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L904-L920"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "950-962",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L950-L962"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "shows",
    "short_label": "PAD LOOP",
    "action": "Shows the selected pad, waveform and loop controls.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "883-902",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L883-L902"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "904-920",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L904-L920"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "950-962",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L950-L962"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "shows",
    "short_label": "CONTROLLER",
    "action": "Shows controller keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "shows",
    "short_label": "PITCH",
    "action": "Shows pitch layer keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "shows",
    "short_label": "LENGTH",
    "action": "Shows length layer keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "shows",
    "short_label": "ACCENT",
    "action": "Shows accent layer keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "shows",
    "short_label": "REPEAT TIE",
    "action": "Shows repeat or tie layer keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "shows",
    "short_label": "ROLL",
    "action": "Shows roll layer keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "shows",
    "short_label": "PUNCH FX",
    "action": "Shows punch effects keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "shows",
    "short_label": "LIVE CHORDS",
    "action": "Shows held chords keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "shows",
    "short_label": "LIVE ARP",
    "action": "Shows held arpeggiator keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "shows",
    "short_label": "FILL",
    "action": "Shows fill layer keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "shows",
    "short_label": "LANE MUTE",
    "action": "Shows lane mute layer keyboard jobs and active settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "1964-2010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L1964-L2010"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "shows",
    "short_label": "303 STEPS",
    "action": "Shows note steps, durations and playhead for BB-303.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2023",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2023"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "shows",
    "short_label": "MINI STEPS",
    "action": "Shows note steps, durations and playhead for B-MINI.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2023",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2023"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "shows",
    "short_label": "BX-7 STEPS",
    "action": "Shows note steps, durations and playhead for BX-7.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2023",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2023"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "shows",
    "short_label": "BITTAL STEPS",
    "action": "Shows note steps, durations and playhead for BITTAL.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2023",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2023"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "shows",
    "short_label": "BUNO STEPS",
    "action": "Shows note steps, durations and playhead for BUNO-6.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_ui_draw.c",
      "lines": "2020-2023",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_ui_draw.c#L2020-L2023"
     }
    ]
   }
  ],
  "encoder_knob1": [
   {
    "mode": "acid_vco_vcf",
    "gesture": "turn",
    "short_label": "TUNING",
    "action": "Changes tuning on the BB-303 VCO VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "29-30",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L29-L30"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "turn",
    "short_label": "DECAY",
    "action": "Changes env decay on the BB-303 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "31-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L31-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "turn",
    "short_label": "MINI TUNE",
    "action": "Changes tune on the B-MINI CONTROL page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "50-51",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L50-L51"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "turn",
    "short_label": "O1 RANGE",
    "action": "Changes osc 1 range on the B-MINI OSC 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "52",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L52"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "turn",
    "short_label": "O2 RANGE",
    "action": "Changes osc 2 range on the B-MINI OSC 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "53-54",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L53-L54"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "turn",
    "short_label": "O3 RANGE",
    "action": "Changes osc 3 range on the B-MINI OSC 3 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "55-56",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L55-L56"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "turn",
    "short_label": "OSC 1",
    "action": "Changes osc 1 on the B-MINI MIXER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "57-58",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L57-L58"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "turn",
    "short_label": "CUTOFF",
    "action": "Changes cutoff on the B-MINI FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "59-60",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "turn",
    "short_label": "F ATTACK",
    "action": "Changes filter attack on the B-MINI F CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "61-62",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L61-L62"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "turn",
    "short_label": "VCA ATTACK",
    "action": "Changes loudness attack on the B-MINI L CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "63-64",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L63-L64"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "turn",
    "short_label": "DRIVE",
    "action": "Changes drive on the B-MINI OUTPUT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "65-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L65-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "turn",
    "short_label": "ALG",
    "action": "Chooses a BX-7 algorithm from 1 to 32, or the loaded patch algorithm at the lowest setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "71-72",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L71-L72"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "360-361",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L360-L361"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "turn",
    "short_label": "R1 ATK",
    "action": "Changes attack-rate adjustment on the BX-7 EG page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "73-74",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L73-L74"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "turn",
    "short_label": "PORTA",
    "action": "Changes porta on the BX-7 VOICE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "75",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L75"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "turn",
    "short_label": "SPEED",
    "action": "Overrides the loaded patch’s LFO speed; the lowest setting follows the patch.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "76-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L76-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "360-361",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L360-L361"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "turn",
    "short_label": "O1 LEVEL",
    "action": "Changes osc 1 level on the BITTAL OSC 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "113-114",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L113-L114"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "turn",
    "short_label": "O1 DETUNE",
    "action": "Changes osc 1 detune on the BITTAL OSC 1 + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "115-116",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L115-L116"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "turn",
    "short_label": "O2 LEVEL",
    "action": "Changes osc 2 level on the BITTAL OSC 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "117-118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L117-L118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "turn",
    "short_label": "O2 DETUNE",
    "action": "Changes osc 2 detune on the BITTAL OSC 2 + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "119-120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L119-L120"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "turn",
    "short_label": "FILTER MODEL",
    "action": "Changes model on the BITTAL FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "121-122",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L121-L122"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "turn",
    "short_label": "ENV2 AMT",
    "action": "Changes env2 amt on the BITTAL FILTER + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "123-124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L123-L124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "turn",
    "short_label": "ENV1 ATTACK",
    "action": "Changes env 1 attack on the BITTAL ENV 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "125-126",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L125-L126"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "turn",
    "short_label": "ENV2 ATTACK",
    "action": "Changes env 2 attack on the BITTAL ENV 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "127-128",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L127-L128"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "turn",
    "short_label": "SHAPE",
    "action": "Changes shape on the BITTAL LFO 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "129-130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L129-L130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "turn",
    "short_label": "M1 TO",
    "action": "Changes m1 to on the BITTAL MACRO 1-2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "131-132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L131-L132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "turn",
    "short_label": "M3 TO",
    "action": "Changes m3 to on the BITTAL MACRO 3-4 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "133-134",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L133-L134"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "turn",
    "short_label": "MODE",
    "action": "Changes mode on the BITTAL VOICE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "135-137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L135-L137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "turn",
    "short_label": "RATE",
    "action": "Changes rate on the BUNO-6 LFO page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "89",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L89"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "turn",
    "short_label": "LFO",
    "action": "Changes lfo on the BUNO-6 DCO page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "90-91",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L90-L91"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "turn",
    "short_label": "PULSE",
    "action": "Changes pulse on the BUNO-6 DCO WAVE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "92-93",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L92-L93"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "turn",
    "short_label": "HPF",
    "action": "Changes hpf on the BUNO-6 HPF VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "94-95",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L94-L95"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "turn",
    "short_label": "ENV +/-",
    "action": "Changes filter-envelope polarity on the BUNO-6 VCF MOD page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "96-97",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L96-L97"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "turn",
    "short_label": "ENV/GATE",
    "action": "Changes env/gate on the BUNO-6 VCA page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "98",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L98"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "turn",
    "short_label": "A",
    "action": "Changes env attack on the BUNO-6 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "99-100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L99-L100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Changes chorus on the BUNO-6 CHORUS page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "101-102",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L101-L102"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "turn",
    "short_label": "DRUM TUNE",
    "action": "Changes tune on the Drum instrument HIT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "164-165",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L164-L165"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "turn",
    "short_label": "DRUM MODEL",
    "action": "Changes model on the Drum instrument INSTRUMENT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "166-168",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L166-L168"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "turn",
    "short_label": "TRACK LEVEL",
    "action": "Changes the cursor track level.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2750-2778",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2750-L2778"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "turn",
    "short_label": "TRACK LEVEL",
    "action": "Changes the selected track level.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "turn",
    "short_label": "TRACK LEVEL",
    "action": "Changes the selected track level.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "turn",
    "short_label": "DUCK",
    "action": "Changes ducking on tracks 2 to 6; track 1 stays the trigger source.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3229-3233",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3229-L3233"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "CLOCK",
    "action": "Selects internal timing counterclockwise or incoming MIDI clock clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3085-3090",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3085-L3090"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "SYNC OUT",
    "action": "Selects stereo audio counterclockwise or split audio and sync output clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3091",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3091"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "SYNC PULSES",
    "action": "Changes sync output to 1, 2 or 4 pulses per quarter note and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3092-3097",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3092-L3097"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "SYNC DELAY",
    "action": "Changes sync-output latency from 0 to 20 milliseconds and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3098",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3098"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "AUTOSAVE",
    "action": "Controls automatic saving of patterns, song and settings; OFF is never written by this switch, so restart restores the stored setting or default ON and can resume saving edits after ten stopped idle seconds.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3099",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3099"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2391-2424",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2391-L2424"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "811-817",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L811-L817"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "848-864",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L848-L864"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "IDLE LIGHTS",
    "action": "Sets idle button lights to off, dim or medium and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "FAST SCREEN",
    "action": "Turns experimental faster display use off counterclockwise or on clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3101-3105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3101-L3105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "TWO CORES",
    "action": "Turns experimental dual-core use off counterclockwise or on clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3106-3110",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3106-L3110"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "LANGUAGE",
    "action": "Selects English counterclockwise or the installed language pack clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3111-3116",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3111-L3116"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the sample-and-sound count or version row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3117",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3117"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "turn",
    "short_label": "SAVE TARGET",
    "action": "Chooses a pattern destination without writing it and cancels an armed clear.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3397-3401",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3397-L3401"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "short_label": "SONG ITEM",
    "action": "Changes the selected song position to a pattern or scene.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3404-3410",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3404-L3410"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "turn",
    "short_label": "TRACK LENGTH",
    "action": "Changes the chosen track length from 1 to 64 steps.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3417-3437",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3417-L3437"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "turn",
    "short_label": "DELAY TIME",
    "action": "Chooses a delay division of 1/16, 1/8, 3/16 or 1/4.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "turn",
    "short_label": "REVERB SIZE",
    "action": "Changes reverb room size.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3484-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3484-L3506"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "turn",
    "short_label": "MASTER FILT",
    "action": "Moves the master filter between low-pass, open and high-pass.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3471-3482",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3471-L3482"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "turn",
    "short_label": "PROJECT ROOT",
    "action": "Changes the project root note.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3443-3453",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3443-L3453"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "turn",
    "short_label": "TRACK ROOT",
    "action": "Changes the project root when inherited, otherwise the track root.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3199-3214",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3199-L3214"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "turn",
    "short_label": "TONE MACRO",
    "action": "Changes tone macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "turn",
    "short_label": "TONE MACRO",
    "action": "Changes tone macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "turn",
    "short_label": "PAD FILTER",
    "action": "Changes pad filter.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "turn",
    "short_label": "MACRO 1",
    "action": "Changes macro 1 and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "LANE LENGTH",
    "action": "Changes track length, using the selected lane on grids.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3167-3172",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3167-L3172"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "turn",
    "short_label": "VARY",
    "action": "Changes generated pad variation amount.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3173",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3173"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "turn",
    "short_label": "TAKE TEMPO",
    "action": "Changes a user take’s source tempo and writes take metadata without a question after 1.5 seconds of stopped inactivity outside PADS; this release includes no factory takes.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3174-3183",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3174-L3183"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1154-1156",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1154-L1156"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "799-802",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L799-L802"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "short_label": "ARP MODE",
    "action": "Selects off, up, down, up-and-down or random arpeggiation.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "turn",
    "short_label": "CHORD SET",
    "action": "Chooses a chord-pad set.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "short_label": "MIDI CHANNEL",
    "action": "Selects outgoing MIDI channel 1 to 16.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3245-3254",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3245-L3254"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "turn",
    "short_label": "LOOP ON",
    "action": "Enables the note loop clockwise or disables it counterclockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3188-3197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3188-L3197"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "turn",
    "short_label": "REC START",
    "action": "Selects immediate capture clockwise or bar-aligned capture counterclockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3217",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3217"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the Machine page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3164",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3164"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "turn",
    "short_label": "PAD START",
    "action": "Moves pad start while keeping its end fixed.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3218-3223",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3218-L3223"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "turn",
    "short_label": "PAD PITCH",
    "action": "Changes the selected pad pitch from minus 24 to plus 24 semitones.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1554-1558",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1554-L1558"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "turn",
    "short_label": "PAD ATTACK",
    "action": "Changes the selected pad attack.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1564-1569",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1564-L1569"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "turn",
    "short_label": "PAD LOOP IN",
    "action": "Moves sustain-loop start and enables held-loop playback.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1559-1563",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1559-L1563"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn_while_holding:button_home",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3313-3317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3313-L3317"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3319-3322",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3322"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "turn",
    "short_label": "TRACK LENGTH",
    "action": "Changes whole-track length, using lane 1 on grid machines.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3324-3327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3324-L3327"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "turn",
    "short_label": "ACCENT",
    "action": "Changes the current track accent strength.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3328"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "turn",
    "short_label": "GLIDE",
    "action": "Changes glide on note tracks; it does nothing on grids.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3329",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3329"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "short_label": "ROLL RATE",
    "action": "Changes the roll repetition division.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3330-3344",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3330-L3344"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "short_label": "DELAY TIME",
    "action": "Chooses delay division of 1/16, 1/8, 3/16 or 1/4.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "turn",
    "short_label": "CHORD SET",
    "action": "Chooses a chord-pad set.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "turn",
    "short_label": "ARP MODE",
    "action": "Selects off, up, down, up-and-down or random arpeggiation.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "turn",
    "short_label": "AUTO FILL",
    "action": "Chooses automatic fill off or every 2, 4 or 8 bars.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3345-3348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3345-L3348"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2645-2655",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2645-L2655"
     }
    ]
   },
   {
    "mode": "held_step_drums",
    "gesture": "turn",
    "short_label": "STEP LOCK 1",
    "action": "Changes macro 1 only for the held grid step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2521-2531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2521-L2531"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "turn",
    "short_label": "STEP LOCK 1",
    "action": "Changes macro 1 for every note starting on the held step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2564-2574",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2564-L2574"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "turn",
    "short_label": "303 CUTOFF",
    "action": "Changes acid-bass cutoff and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "28-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L28-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "turn",
    "short_label": "MINI CUTOFF",
    "action": "Changes mono-synth cutoff and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "49-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L49-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "turn",
    "short_label": "MOD LEVEL",
    "action": "Changes the loaded FM patch’s mod level and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "70-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L70-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "turn",
    "short_label": "MACRO 1",
    "action": "Changes macro 1, whose displayed name follows its assigned destination, and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "139-142",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L139-L142"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "turn",
    "short_label": "VCF CUTOFF",
    "action": "Changes polysynth vcf cutoff and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "88-102",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L88-L102"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3455-3465",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3455-L3465"
     }
    ]
   },
   {
    "mode": "rec_notes",
    "gesture": "turn",
    "short_label": "MACRO 1",
    "action": "Changes the note machine’s macro 1 and records it onto held recorded notes while playback is active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   }
  ],
  "encoder_knob2": [
   {
    "mode": "acid_vco_vcf",
    "gesture": "turn",
    "short_label": "303 CUTOFF",
    "action": "Changes cutoff on the BB-303 VCO VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "29-30",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L29-L30"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "turn",
    "short_label": "ACCENT",
    "action": "Changes env accent on the BB-303 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "31-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L31-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "turn",
    "short_label": "MINI GLIDE",
    "action": "Changes glide on the B-MINI CONTROL page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "50-51",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L50-L51"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "turn",
    "short_label": "O1 WAVE",
    "action": "Changes osc 1 wave on the B-MINI OSC 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "52",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L52"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "turn",
    "short_label": "O2 TUNE",
    "action": "Changes osc 2 oscillator tuning on the B-MINI OSC 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "53-54",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L53-L54"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "turn",
    "short_label": "O3 TUNE",
    "action": "Changes osc 3 oscillator tuning on the B-MINI OSC 3 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "55-56",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L55-L56"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "turn",
    "short_label": "OSC 2",
    "action": "Changes osc 2 on the B-MINI MIXER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "57-58",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L57-L58"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "turn",
    "short_label": "EMPHASIS",
    "action": "Changes emphasis on the B-MINI FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "59-60",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "turn",
    "short_label": "F DECAY",
    "action": "Changes filter decay on the B-MINI F CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "61-62",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L61-L62"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "turn",
    "short_label": "VCA DECAY",
    "action": "Changes loudness decay on the B-MINI L CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "63-64",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L63-L64"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "turn",
    "short_label": "MODE",
    "action": "Changes mode on the B-MINI OUTPUT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "65-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L65-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "turn",
    "short_label": "FEEDBACK",
    "action": "Changes feedback on the BX-7 ALGORITHM page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "71-72",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L71-L72"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "turn",
    "short_label": "R2-3 DEC",
    "action": "Changes decay-rate adjustment on the BX-7 EG page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "73-74",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L73-L74"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "turn",
    "short_label": "TRANSP",
    "action": "Changes transp on the BX-7 VOICE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "75",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L75"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "turn",
    "short_label": "FM LFO DELAY",
    "action": "Overrides the loaded patch’s LFO delay; the lowest setting follows the patch.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "76-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L76-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "360-361",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L360-L361"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "turn",
    "short_label": "O1 TRANSPOSE",
    "action": "Changes osc 1 transp on the BITTAL OSC 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "113-114",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L113-L114"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "turn",
    "short_label": "O1 FINE",
    "action": "Changes osc 1 fine on the BITTAL OSC 1 + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "115-116",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L115-L116"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "turn",
    "short_label": "O2 TRANSPOSE",
    "action": "Changes osc 2 transp on the BITTAL OSC 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "117-118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L117-L118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "turn",
    "short_label": "O2 FINE",
    "action": "Changes osc 2 fine on the BITTAL OSC 2 + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "119-120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L119-L120"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "turn",
    "short_label": "BITTAL FREQ",
    "action": "Changes cutoff on the BITTAL FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "121-122",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L121-L122"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "turn",
    "short_label": "KEYTRK",
    "action": "Changes keytrk on the BITTAL FILTER + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "123-124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L123-L124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "turn",
    "short_label": "ENV1 DECAY",
    "action": "Changes env 1 decay on the BITTAL ENV 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "125-126",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L125-L126"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "turn",
    "short_label": "ENV2 DECAY",
    "action": "Changes env 2 decay on the BITTAL ENV 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "127-128",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L127-L128"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "turn",
    "short_label": "RATE",
    "action": "Changes rate on the BITTAL LFO 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "129-130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L129-L130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "turn",
    "short_label": "M1 AMT",
    "action": "Changes m1 amt on the BITTAL MACRO 1-2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "131-132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L131-L132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "turn",
    "short_label": "M3 AMT",
    "action": "Changes m3 amt on the BITTAL MACRO 3-4 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "133-134",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L133-L134"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "turn",
    "short_label": "BITTAL GLIDE",
    "action": "Changes glide on the BITTAL VOICE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "135-137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L135-L137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "turn",
    "short_label": "BUNO DELAY",
    "action": "Changes delay on the BUNO-6 LFO page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "89",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L89"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "turn",
    "short_label": "PWM",
    "action": "Changes pwm on the BUNO-6 DCO page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "90-91",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L90-L91"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "turn",
    "short_label": "SAW",
    "action": "Changes saw on the BUNO-6 DCO WAVE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "92-93",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L92-L93"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "turn",
    "short_label": "VCF CUTOFF",
    "action": "Changes filter cutoff on the BUNO-6 HPF VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "94-95",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L94-L95"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "turn",
    "short_label": "LFO",
    "action": "Changes lfo on the BUNO-6 VCF MOD page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "96-97",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L96-L97"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "turn",
    "short_label": "VELO",
    "action": "Changes velo on the BUNO-6 VCA page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "98",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L98"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "turn",
    "short_label": "D",
    "action": "Changes env decay on the BUNO-6 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "99-100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L99-L100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "turn",
    "short_label": "DECAY",
    "action": "Changes decay on the Drum instrument HIT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "164-165",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L164-L165"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "turn",
    "short_label": "LEVEL",
    "action": "Changes level on the Drum instrument INSTRUMENT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "166-168",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L166-L168"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "turn",
    "short_label": "SWING",
    "action": "Changes project swing from 50 to 75 percent.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "SWING",
    "action": "Changes project swing from 50 to 75 percent.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "turn",
    "short_label": "TRACK FILTER",
    "action": "Moves the cursor track filter from low-pass through open to high-pass.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2750-2778",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2750-L2778"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "turn",
    "short_label": "PAN",
    "action": "Moves the selected track in stereo, pausing at center.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "turn",
    "short_label": "PAN",
    "action": "Moves the selected track in stereo, pausing at center.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on Duck.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3229-3233",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3229-L3233"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "short_label": "REPEATS",
    "action": "Sets the selected position to repeat from 1 to 16 times.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3411",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3411"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "turn",
    "short_label": "TRACK SPEED",
    "action": "Changes playback rate, increasing speed clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3417-3437",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3417-L3437"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "turn",
    "short_label": "DLY FEEDBACK",
    "action": "Changes delay feedback.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "turn",
    "short_label": "REVERB DAMP",
    "action": "Changes reverb damping.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3484-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3484-L3506"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "turn",
    "short_label": "BEAT FX",
    "action": "Chooses a persistent whole-mix beat effect or turns it off.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3471-3482",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3471-L3482"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "turn",
    "short_label": "SCALE",
    "action": "Chooses the project scale.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3443-3453",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3443-L3453"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "turn",
    "short_label": "TRACK SCALE",
    "action": "Chooses the track scale or PROJECT inheritance.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3199-3214",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3199-L3214"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "turn",
    "short_label": "TUNE MACRO",
    "action": "Changes tune macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "turn",
    "short_label": "TUNE MACRO",
    "action": "Changes tune macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "turn",
    "short_label": "PAD PITCH",
    "action": "Changes pad pitch.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "turn",
    "short_label": "MACRO 2",
    "action": "Changes macro 2 and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "TRACK SPEED",
    "action": "Changes playback rate, increasing speed clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3167-3172",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3167-L3172"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "turn",
    "short_label": "ANCHOR",
    "action": "Changes the generator anchor amount.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3173",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3173"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "turn",
    "short_label": "TAKE BARS",
    "action": "Changes a user take’s bar count and writes take metadata without a question after 1.5 seconds of stopped inactivity outside PADS; this release includes no factory takes.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3174-3183",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3174-L3183"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1154-1156",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1154-L1156"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "799-802",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L799-L802"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "short_label": "ARP RATE",
    "action": "Selects 1/8, 1/16 or 1/32 arpeggiation.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "turn",
    "short_label": "VOICING",
    "action": "Selects closed, open or voice-led chords.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "short_label": "MIDI PROGRAM",
    "action": "Selects and sends a MIDI program change.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3245-3254",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3245-L3254"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "turn",
    "short_label": "LOOP BARS",
    "action": "Selects a loop duration of 1, 2 or 4 bars.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3188-3197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3188-L3197"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the sampler recorder page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3217",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3217"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the Machine page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3164",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3164"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "turn",
    "short_label": "PAD LENGTH",
    "action": "Moves pad end while keeping its start fixed.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3218-3223",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3218-L3223"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "turn",
    "short_label": "PAD LEVEL",
    "action": "Changes the selected pad level.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1554-1558",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1554-L1558"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "turn",
    "short_label": "PAD RELEASE",
    "action": "Changes the selected pad release.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1564-1569",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1564-L1569"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "turn",
    "short_label": "PAD LOOP OUT",
    "action": "Moves sustain-loop end, with zero using the whole pad, and enables held-loop playback.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1559-1563",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1559-L1563"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn_while_holding:button_home",
    "short_label": "SWING",
    "action": "Changes project swing from 50 to 75 percent.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3313-3317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3313-L3317"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "turn",
    "short_label": "SWING",
    "action": "Changes project swing from 50 to 75 percent.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3319-3322",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3322"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "turn",
    "short_label": "TRACK SPEED",
    "action": "Changes track speed, increasing it clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3324-3327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3324-L3327"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3328"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3329",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3329"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "short_label": "ROLL RAMP",
    "action": "Changes crescendo or decrescendo duration.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3330-3344",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3330-L3344"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "short_label": "DLY FEEDBACK",
    "action": "Changes delay feedback.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "turn",
    "short_label": "VOICING",
    "action": "Selects closed, open or voice-led chords.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "turn",
    "short_label": "ARP RATE",
    "action": "Selects 1/8, 1/16 or 1/32 arpeggiation.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "held_step_drums",
    "gesture": "turn",
    "short_label": "STEP LOCK 2",
    "action": "Changes macro 2 only for the held grid step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2521-2531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2521-L2531"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "turn",
    "short_label": "STEP LOCK 2",
    "action": "Changes macro 2 for every note starting on the held step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2564-2574",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2564-L2574"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "turn",
    "short_label": "303 RESO",
    "action": "Changes acid-bass resonance and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "28-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L28-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "turn",
    "short_label": "EMPHASIS",
    "action": "Changes mono-synth emphasis and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "49-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L49-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "turn",
    "short_label": "FM FEEDBACK",
    "action": "Changes the loaded FM patch’s feedback and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "70-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L70-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "turn",
    "short_label": "MACRO 2",
    "action": "Changes macro 2, whose displayed name follows its assigned destination, and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "139-142",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L139-L142"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "turn",
    "short_label": "BUNO RESO",
    "action": "Changes polysynth resonance and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "88-102",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L88-L102"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3393-3396",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3393-L3396"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3397-3401",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3397-L3401"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3455-3465",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3455-L3465"
     }
    ]
   },
   {
    "mode": "rec_notes",
    "gesture": "turn",
    "short_label": "MACRO 2",
    "action": "Changes the note machine’s macro 2 and records it onto held recorded notes while playback is active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   }
  ],
  "encoder_knob3": [
   {
    "mode": "acid_vco_vcf",
    "gesture": "turn",
    "short_label": "303 RESO",
    "action": "Changes reso on the BB-303 VCO VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "29-30",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L29-L30"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "turn",
    "short_label": "SLIDE",
    "action": "Changes env slide on the BB-303 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "31-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L31-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "turn",
    "short_label": "MOD RATE",
    "action": "Changes mod rate on the B-MINI CONTROL page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "50-51",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L50-L51"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "turn",
    "short_label": "O2 WAVE",
    "action": "Changes osc 2 wave on the B-MINI OSC 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "53-54",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L53-L54"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "turn",
    "short_label": "O3 WAVE",
    "action": "Changes osc 3 wave on the B-MINI OSC 3 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "55-56",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L55-L56"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "turn",
    "short_label": "OSC 3",
    "action": "Changes osc 3 on the B-MINI MIXER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "57-58",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L57-L58"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "turn",
    "short_label": "CONTOUR",
    "action": "Changes contour on the B-MINI FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "59-60",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "turn",
    "short_label": "F SUSTAIN",
    "action": "Changes filter sustain on the B-MINI F CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "61-62",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L61-L62"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "turn",
    "short_label": "VCA SUSTAIN",
    "action": "Changes loudness sustain on the B-MINI L CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "63-64",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L63-L64"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "turn",
    "short_label": "VEL FILT",
    "action": "Changes vel filt on the B-MINI OUTPUT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "65-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L65-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "turn",
    "short_label": "MOD LVL",
    "action": "Changes mod lvl on the BX-7 ALGORITHM page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "71-72",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L71-L72"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "turn",
    "short_label": "R4 REL",
    "action": "Changes release-rate adjustment on the BX-7 EG page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "73-74",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L73-L74"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "turn",
    "short_label": "PMD",
    "action": "Overrides the loaded patch’s LFO pitch-modulation depth; the lowest setting follows the patch.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "76-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L76-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "360-361",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L360-L361"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "turn",
    "short_label": "O1 FRAME",
    "action": "Changes osc 1 frame on the BITTAL OSC 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "113-114",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L113-L114"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "turn",
    "short_label": "O1 TABLE",
    "action": "Changes osc 1 wavetable choice on the BITTAL OSC 1 + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "115-116",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L115-L116"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "turn",
    "short_label": "O2 FRAME",
    "action": "Changes osc 2 frame on the BITTAL OSC 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "117-118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L117-L118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "turn",
    "short_label": "O2 TABLE",
    "action": "Changes osc 2 wavetable choice on the BITTAL OSC 2 + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "119-120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L119-L120"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "turn",
    "short_label": "BITTAL RESO",
    "action": "Changes reso on the BITTAL FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "121-122",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L121-L122"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "turn",
    "short_label": "VELO",
    "action": "Changes velo on the BITTAL FILTER + page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "123-124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L123-L124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "turn",
    "short_label": "ENV1 SUSTAIN",
    "action": "Changes env 1 sustain on the BITTAL ENV 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "125-126",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L125-L126"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "turn",
    "short_label": "ENV2 SUSTAIN",
    "action": "Changes env 2 sustain on the BITTAL ENV 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "127-128",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L127-L128"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "turn",
    "short_label": "DEST",
    "action": "Changes dest on the BITTAL LFO 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "129-130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L129-L130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "turn",
    "short_label": "M2 TO",
    "action": "Changes m2 to on the BITTAL MACRO 1-2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "131-132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L131-L132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "turn",
    "short_label": "M4 TO",
    "action": "Changes m4 to on the BITTAL MACRO 3-4 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "133-134",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L133-L134"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "turn",
    "short_label": "VEL LVL",
    "action": "Changes vel lvl on the BITTAL VOICE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "135-137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L135-L137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "turn",
    "short_label": "PWM MODE",
    "action": "Changes pwm mode on the BUNO-6 DCO page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "90-91",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L90-L91"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "turn",
    "short_label": "SUB",
    "action": "Changes sub on the BUNO-6 DCO WAVE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "92-93",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L92-L93"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "turn",
    "short_label": "RES",
    "action": "Changes res on the BUNO-6 HPF VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "94-95",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L94-L95"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "turn",
    "short_label": "KYBD",
    "action": "Changes kybd on the BUNO-6 VCF MOD page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "96-97",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L96-L97"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "turn",
    "short_label": "S",
    "action": "Changes env sustain on the BUNO-6 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "99-100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L99-L100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "turn",
    "short_label": "TONE",
    "action": "Changes tone on the Drum instrument HIT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "164-165",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L164-L165"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "turn",
    "short_label": "CHOKE",
    "action": "Changes choke on the Drum instrument INSTRUMENT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "166-168",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L166-L168"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "turn",
    "short_label": "MASTER STEPS",
    "action": "Changes the pattern-change interval, including an unlimited length.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "MASTER STEPS",
    "action": "Changes the pattern-change interval, including an unlimited length.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "turn",
    "short_label": "DELAY SEND",
    "action": "Changes the cursor track delay send.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2750-2778",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2750-L2778"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "turn",
    "short_label": "DELAY SEND",
    "action": "Changes the selected track delay send.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "turn",
    "short_label": "DELAY SEND",
    "action": "Changes the selected track delay send.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on Duck.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3229-3233",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3229-L3233"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on Song.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3402-3416",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3402-L3416"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "turn",
    "short_label": "TIME LANE",
    "action": "Selects a drum lane; it has no effect on BP-1 or note tracks.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3417-3437",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3417-L3437"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "turn",
    "short_label": "DELAY MIX",
    "action": "Changes the delay wet level.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "turn",
    "short_label": "REVERB MIX",
    "action": "Changes the reverb wet level.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3484-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3484-L3506"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "turn",
    "short_label": "DRIVE",
    "action": "Changes master soft clipping and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3471-3482",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3471-L3482"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "turn",
    "short_label": "BASE CHORD",
    "action": "Chooses triads, sevenths, ninths, suspended seconds or suspended fourths.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3443-3453",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3443-L3453"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "turn",
    "short_label": "BASE CHORD",
    "action": "Chooses triads, sevenths, ninths, suspended seconds or suspended fourths.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3199-3214",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3199-L3214"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "turn",
    "short_label": "DECAY MACRO",
    "action": "Changes decay macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "turn",
    "short_label": "DECAY MACRO",
    "action": "Changes decay macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "turn",
    "short_label": "PAD DECAY",
    "action": "Changes pad decay.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "turn",
    "short_label": "MACRO 3",
    "action": "Changes macro 3 and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "ACCENT",
    "action": "Changes track accent amount.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3167-3172",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3167-L3172"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "turn",
    "short_label": "REPEAT",
    "action": "Changes generated pad repeat amount.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3173",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3173"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "turn",
    "short_label": "TAKE GAIN",
    "action": "Changes a user take’s gain and writes take metadata without a question after 1.5 seconds of stopped inactivity outside PADS; this release includes no factory takes.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3174-3183",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3174-L3183"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1154-1156",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1154-L1156"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "799-802",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L799-L802"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "short_label": "ARP OCTAVES",
    "action": "Sets the span from 1 to 3 octaves.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "turn",
    "short_label": "CHORD OCTAVE",
    "action": "Sets chord register from octave 1 to 5.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "short_label": "MOD WHEEL",
    "action": "Changes and sends MIDI controller 1.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3245-3254",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3245-L3254"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the note-loop page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3188-3197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3188-L3197"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the sampler recorder page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3217",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3217"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the Machine page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3164",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3164"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "turn",
    "short_label": "WAVE ZOOM",
    "action": "Chooses one of four waveform zoom levels.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3218-3223",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3218-L3223"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "turn",
    "short_label": "PAD PLAY",
    "action": "Cycles pad playback mode.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1554-1558",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1554-L1558"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "turn",
    "short_label": "PAD CHOKE",
    "action": "Selects no choke or one of three pad choke groups.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1564-1569",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1564-L1569"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "turn",
    "short_label": "PAD PLAY",
    "action": "Cycles pad playback mode.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1559-1563",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1559-L1563"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn_while_holding:button_home",
    "short_label": "MASTER STEPS",
    "action": "Changes the pattern-change interval, including an unlimited length.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3313-3317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3313-L3317"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "turn",
    "short_label": "TRANSPOSE",
    "action": "Changes project pitch by semitones.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3319-3322",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3322"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3324-3327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3324-L3327"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3328"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3329",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3329"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "short_label": "ROLL SWING",
    "action": "Changes roll swing from 50 to 75 percent.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3330-3344",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3330-L3344"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "short_label": "DELAY MIX",
    "action": "Changes delay wet level.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "turn",
    "short_label": "CHORD OCTAVE",
    "action": "Sets chord register from octave 1 to 5.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "turn",
    "short_label": "ARP OCTAVES",
    "action": "Sets the span from 1 to 3 octaves.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "held_step_drums",
    "gesture": "turn",
    "short_label": "STEP LOCK 3",
    "action": "Changes macro 3 only for the held grid step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2521-2531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2521-L2531"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "turn",
    "short_label": "STEP LOCK 3",
    "action": "Changes macro 3 for every note starting on the held step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2564-2574",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2564-L2574"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "turn",
    "short_label": "ENV MOD",
    "action": "Changes acid-bass env mod and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "28-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L28-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "turn",
    "short_label": "CONTOUR",
    "action": "Changes mono-synth contour and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "49-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L49-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "turn",
    "short_label": "FM DECAY",
    "action": "Changes the loaded FM patch’s fm decay and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "70-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L70-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "turn",
    "short_label": "MACRO 3",
    "action": "Changes macro 3, whose displayed name follows its assigned destination, and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "139-142",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L139-L142"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "turn",
    "short_label": "VCF ENVELOPE",
    "action": "Changes polysynth vcf envelope and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "88-102",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L88-L102"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3393-3396",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3393-L3396"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3397-3401",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3397-L3401"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3455-3465",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3455-L3465"
     }
    ]
   },
   {
    "mode": "rec_notes",
    "gesture": "turn",
    "short_label": "MACRO 3",
    "action": "Changes the note machine’s macro 3 and records it onto held recorded notes while playback is active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   }
  ],
  "encoder_knob4": [
   {
    "mode": "acid_vco_vcf",
    "gesture": "turn",
    "short_label": "ENV MOD",
    "action": "Changes env mod on the BB-303 VCO VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "29-30",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L29-L30"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "turn",
    "short_label": "WAVE",
    "action": "Changes env wave on the BB-303 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "31-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L31-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "turn",
    "short_label": "MOD AMT",
    "action": "Changes LFO depth toward oscillators on the left or filter on the right on the B-MINI CONTROL page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "50-51",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L50-L51"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "turn",
    "short_label": "MINI NOISE",
    "action": "Changes noise on the B-MINI MIXER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "57-58",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L57-L58"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "turn",
    "short_label": "KBD CTRL",
    "action": "Changes kbd ctrl on the B-MINI FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "59-60",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L59-L60"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "turn",
    "short_label": "F RELEASE",
    "action": "Changes filter release on the B-MINI F CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "61-62",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L61-L62"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "turn",
    "short_label": "VCA RELEASE",
    "action": "Changes loudness release on the B-MINI L CONTOUR page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "63-64",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L63-L64"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "turn",
    "short_label": "VEL LVL",
    "action": "Changes vel lvl on the B-MINI OUTPUT page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "65-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L65-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "turn",
    "short_label": "KEY VEL",
    "action": "Changes note accent strength on the BX-7 ALGORITHM page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "71-72",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L71-L72"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "turn",
    "short_label": "AMD",
    "action": "Overrides the loaded patch’s LFO amplitude-modulation depth; the lowest setting follows the patch.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "76-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L76-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "360-361",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L360-L361"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "turn",
    "short_label": "O1 UNISON",
    "action": "Changes osc 1 unison on the BITTAL OSC 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "113-114",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L113-L114"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "turn",
    "short_label": "O2 UNISON",
    "action": "Changes osc 2 unison on the BITTAL OSC 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "117-118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L117-L118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "turn",
    "short_label": "DRIVE",
    "action": "Changes drive on the BITTAL FILTER page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "121-122",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L121-L122"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "turn",
    "short_label": "ENV1 RELEASE",
    "action": "Changes env 1 release on the BITTAL ENV 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "125-126",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L125-L126"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "turn",
    "short_label": "ENV2 RELEASE",
    "action": "Changes env 2 release on the BITTAL ENV 2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "127-128",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L127-L128"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "turn",
    "short_label": "AMOUNT",
    "action": "Changes amount on the BITTAL LFO 1 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "129-130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L129-L130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "turn",
    "short_label": "M2 AMT",
    "action": "Changes m2 amt on the BITTAL MACRO 1-2 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "131-132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L131-L132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "turn",
    "short_label": "M4 AMT",
    "action": "Changes m4 amt on the BITTAL MACRO 3-4 page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "133-134",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L133-L134"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "turn",
    "short_label": "RANGE",
    "action": "Changes range on the BUNO-6 DCO page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "90-91",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L90-L91"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "turn",
    "short_label": "BUNO NOISE",
    "action": "Changes noise on the BUNO-6 DCO WAVE page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "92-93",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L92-L93"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "turn",
    "short_label": "ENV",
    "action": "Changes env on the BUNO-6 HPF VCF page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "94-95",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L94-L95"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "turn",
    "short_label": "VELO",
    "action": "Changes velo on the BUNO-6 VCF MOD page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "96-97",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L96-L97"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "turn",
    "short_label": "R",
    "action": "Changes env release on the BUNO-6 ENV page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "99-100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L99-L100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on this page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-362",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L362"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "turn",
    "short_label": "COLOR",
    "action": "Changes the selected drum model’s color parameter, whose name follows its drum model.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "164-165",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L164-L165"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "turn",
    "short_label": "LENGTH",
    "action": "Changes the selected drum lane length from 1 to 64 steps.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "166-168",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L166-L168"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "355-374",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L355-L374"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "turn",
    "short_label": "DRIVE",
    "action": "Changes master soft clipping and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "DRIVE",
    "action": "Changes master soft clipping and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "turn",
    "short_label": "REVERB SEND",
    "action": "Changes the cursor track reverb send.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2750-2778",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2750-L2778"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "turn",
    "short_label": "REVERB SEND",
    "action": "Changes the selected track reverb send.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "turn",
    "short_label": "REVERB SEND",
    "action": "Changes the selected track reverb send.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3227-3243",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3227-L3243"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on Duck.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3229-3233",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3229-L3233"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "short_label": "SONG ON",
    "action": "Enables song playback clockwise or disables it counterclockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3412-3415",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3412-L3415"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "turn",
    "short_label": "LANE LENGTH",
    "action": "Changes the chosen drum lane length from 1 to 64 steps; it has no effect on BP-1 or note tracks.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3417-3437",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3417-L3437"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "turn",
    "short_label": "DUCK RELEASE",
    "action": "Changes sidechain recovery time.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "turn",
    "short_label": "DUCK RELEASE",
    "action": "Changes sidechain recovery time.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3484-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3484-L3506"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on Master effects.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3471-3482",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3471-L3482"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "turn",
    "short_label": "SCALE KEYS",
    "action": "Enables scale-only keys clockwise or disables them counterclockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3443-3453",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3443-L3453"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "turn",
    "short_label": "SCALE KEYS",
    "action": "Enables scale-only keys clockwise or disables them counterclockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3199-3214",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3199-L3214"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "turn",
    "short_label": "COLOR MACRO",
    "action": "Changes color macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "turn",
    "short_label": "COLOR MACRO",
    "action": "Changes color macro.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "turn",
    "short_label": "PAD START",
    "action": "Changes pad start.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "turn",
    "short_label": "MACRO 4",
    "action": "Changes macro 4 and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "TRANSPOSE",
    "action": "Changes pitch by semitones on note tracks; it does nothing on grids.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3167-3172",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3167-L3172"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "turn",
    "short_label": "BREAK",
    "action": "Changes the generator break amount.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3173",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3173"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in the take library.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3174-3183",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3174-L3183"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "short_label": "ARP GATE",
    "action": "Sets note gates from 10 to 100 percent.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "turn",
    "short_label": "STRUM",
    "action": "Changes strum delay from 0 to 60 milliseconds in two-millisecond steps.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "short_label": "BRIGHTNESS",
    "action": "Changes and sends MIDI controller 74.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3245-3254",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3245-L3254"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the note-loop page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3188-3197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3188-L3197"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the sampler recorder page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3217",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3217"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the Machine page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3164",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3164"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "turn",
    "short_label": "TRIM SNAP",
    "action": "Chooses no snapping, 1/16 or 1/8 snapping.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3218-3223",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3218-L3223"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "turn",
    "short_label": "PAD DIR",
    "action": "Selects forward counterclockwise or reverse clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1554-1558",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1554-L1558"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "turn",
    "short_label": "PAD TEMPO",
    "action": "Enables tempo sync clockwise or disables it counterclockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1564-1569",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1564-L1569"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the pad-loop page.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1559-1563",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1559-L1563"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn_while_holding:button_home",
    "short_label": "DRIVE",
    "action": "Changes master soft clipping and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3313-3317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3313-L3317"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2641",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2641"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "turn",
    "short_label": "PITCH OCTAVE",
    "action": "Changes project pitch in octave steps.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3319-3322",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3322"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3324-3327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3324-L3327"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3328"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3329",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3329"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "short_label": "ROLL TAIL",
    "action": "Changes how long the roll continues after key release.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3330-3344",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3330-L3344"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "short_label": "DUCK RELEASE",
    "action": "Changes sidechain recovery time.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3494-3506",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3494-L3506"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "turn",
    "short_label": "STRUM",
    "action": "Changes strum delay from 0 to 60 milliseconds in two-millisecond steps.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3266-3274",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3266-L3274"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "turn",
    "short_label": "ARP GATE",
    "action": "Sets note gates from 10 to 100 percent.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3257-3264",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3257-L3264"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3355-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3355-L3357"
     }
    ]
   },
   {
    "mode": "held_step_drums",
    "gesture": "turn",
    "short_label": "STEP LOCK 4",
    "action": "Changes macro 4 only for the held grid step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2521-2531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2521-L2531"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "turn",
    "short_label": "STEP LOCK 4",
    "action": "Changes macro 4 for every note starting on the held step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2564-2574",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2564-L2574"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "turn",
    "short_label": "DECAY",
    "action": "Changes acid-bass decay and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "28-33",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L28-L33"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "turn",
    "short_label": "F DECAY",
    "action": "Changes mono-synth f decay and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "49-67",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L49-L67"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "turn",
    "short_label": "FM RELEASE",
    "action": "Changes the loaded FM patch’s fm release and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "70-78",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L70-L78"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "turn",
    "short_label": "MACRO 4",
    "action": "Changes macro 4, whose displayed name follows its assigned destination, and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "139-142",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L139-L142"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "turn",
    "short_label": "VCF LFO",
    "action": "Changes polysynth vcf lfo and records it onto held recorded notes when REC and playback are active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "88-102",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L88-L102"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "241-251",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L241-L251"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3393-3396",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3393-L3396"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3397-3401",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3397-L3401"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3455-3465",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3455-L3465"
     }
    ]
   },
   {
    "mode": "rec_notes",
    "gesture": "turn",
    "short_label": "MACRO 4",
    "action": "Changes the note machine’s macro 4 and records it onto held recorded notes while playback is active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2481-2499",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2481-L2499"
     }
    ]
   }
  ],
  "encoder_presets": [
   {
    "mode": "home",
    "gesture": "turn",
    "short_label": "MOVE",
    "action": "Changes the live whole-mix filter and echo or reverb gesture, which is not saved.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2781-2791",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2781-L2791"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "turn",
    "short_label": "MOVE",
    "action": "Changes the live whole-mix filter and echo or reverb gesture, which is not saved.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2781-2791",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2781-L2791"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "turn",
    "short_label": "MOVE",
    "action": "Changes the live whole-mix filter and echo or reverb gesture, which is not saved.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2781-2791",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2781-L2791"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "turn",
    "short_label": "MOVE",
    "action": "Changes the live whole-mix filter and echo or reverb gesture, which is not saved.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2781-2791",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2781-L2791"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "turn",
    "short_label": "MOVE",
    "action": "Changes the live whole-mix filter and echo or reverb gesture, which is not saved.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2781-2791",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2781-L2791"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "MOVE",
    "action": "Changes the live whole-mix filter and echo or reverb gesture, which is not saved.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2781-2791",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2781-L2791"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "short_label": "MOVE",
    "action": "Changes the live whole-mix filter and echo or reverb gesture, which is not saved.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2781-2791",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2781-L2791"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "turn",
    "short_label": "PATTERN",
    "action": "Selects a pattern after 500 milliseconds without another turn, queuing it during playback or saving dirty current and pending patterns without a question before a stopped change.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2898-2905",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2898-L2905"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1111-1112",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1111-L1112"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1097",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1097"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "turn",
    "short_label": "SAVE TARGET",
    "action": "Chooses a pattern destination without writing it and cancels an armed clear.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3397-3401",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3397-L3401"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "turn",
    "short_label": "KIT",
    "action": "Replaces drum instrument settings without a question, keeps steps and one undo copy, and reaches flash only through pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "202-210",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L202-L210"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "turn",
    "short_label": "KIT",
    "action": "Replaces drum instrument settings without a question, keeps steps and one undo copy, and reaches flash only through pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "202-210",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L202-L210"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "turn",
    "short_label": "KIT OR SOUND",
    "action": "On drums replaces the kit while keeping steps and a kit undo copy, on BP-1 assigns a whole take with no undo of the old pad assignment, and on synths loads a sound without sound undo; none asks and a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "turn",
    "short_label": "KIT OR SOUND",
    "action": "On drums replaces the kit while keeping steps and a kit undo copy, on BP-1 assigns a whole take with no undo of the old pad assignment, and on synths loads a sound without sound undo; none asks and a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "KIT OR SOUND",
    "action": "On drums replaces the kit while keeping steps and a kit undo copy, on BP-1 assigns a whole take with no undo of the old pad assignment, and on synths loads a sound without sound undo; none asks and a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "The retained handler would choose a normal sound; this page is unreachable in this release.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app_int.h",
      "lines": "31",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app_int.h#L31"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "turn",
    "short_label": "KIT OR SOUND",
    "action": "On drums replaces the kit while keeping steps and a kit undo copy, on BP-1 assigns a whole take with no undo of the old pad assignment, and on synths loads a sound without sound undo; none asks and a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "turn",
    "short_label": "KIT OR SOUND",
    "action": "On drums replaces the kit while keeping steps and a kit undo copy, on BP-1 assigns a whole take with no undo of the old pad assignment, and on synths loads a sound without sound undo; none asks and a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "992-1026",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "acid_vco_vcf",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another factory or user sound for the current machine without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "turn",
    "short_label": "KIT",
    "action": "Replaces drum instrument settings without a question, keeps steps and one undo copy, and reaches flash only through pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "202-210",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L202-L210"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "turn",
    "short_label": "KIT",
    "action": "Replaces drum instrument settings without a question, keeps steps and one undo copy, and reaches flash only through pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_params.c",
      "lines": "202-210",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L202-L210"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "turn",
    "short_label": "PAD TAKE",
    "action": "Replaces the selected pad with a whole available take without asking or undo of the old pad assignment; a later pattern save writes it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2962-2972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2962-L2972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn_while_holding:button_home",
    "short_label": "PATTERN",
    "action": "Highlights a pattern for HOME release, which queues it during playback or saves dirty current and pending patterns without a question before a stopped change.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3313-3317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3313-L3317"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1097",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1097"
     }
    ]
   },
   {
    "mode": "held_step_drums",
    "gesture": "turn",
    "short_label": "STEP FILL",
    "action": "Chooses always, fill-only or no-fill for the held step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2544-2549",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2544-L2549"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "turn",
    "short_label": "STEP LENGTH",
    "action": "Sets held-step notes to 1 through 16 steps or a tie.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2591-2596",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2591-L2596"
     }
    ]
   },
   {
    "mode": "rec_notes",
    "gesture": "turn",
    "short_label": "REC TIMING",
    "action": "Moves all notes on the chosen step up to 11 ticks early or late.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2682-2707",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2682-L2707"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another BB-303 sound without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another B-MINI sound without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another BX-7 sound without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another BITTAL sound without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "turn",
    "short_label": "SOUND",
    "action": "Loads another BUNO-6 sound without a question; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2974-2983",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2974-L2983"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3393-3396",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3393-L3396"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3417-3437",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3417-L3437"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3443-3454",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3443-L3454"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3455-3465",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3455-L3465"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3319-3323",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3323"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3324-3327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3324-L3327"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3328"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3329",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3329"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3330-3344",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3330-L3344"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   }
  ],
  "encoder_algorithm": [
   {
    "mode": "home",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2616",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2616"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2616",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2616"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2616",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2616"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2616",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2616"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2616",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2616"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes project tempo from 40 to 240 BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2616",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2616"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "TEMPO",
    "action": "Changes tempo on the BPM row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2605-2616",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2605-L2616"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "SWING",
    "action": "Changes swing on the SWING row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2618-2623",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2618-L2623"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "MASTER STEPS",
    "action": "Changes the pattern-change interval on its row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2625-2632",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2625-L2632"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "DRIVE",
    "action": "Changes soft clipping on the DRIVE row and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2634-2639",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2634-L2639"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "AUTO FILL",
    "action": "Chooses automatic fill off or every 2, 4 or 8 bars.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2645-2655",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2645-L2655"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "PROJ TRANSP",
    "action": "Changes project pitch by semitones.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2658-2663",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2658-L2663"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "CLOCK",
    "action": "Selects internal timing counterclockwise or incoming MIDI clock clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3085-3090",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3085-L3090"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "SYNC OUT",
    "action": "Selects stereo audio counterclockwise or split audio and sync output clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3091",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3091"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "SYNC PULSES",
    "action": "Changes sync output to 1, 2 or 4 pulses per quarter note and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3092-3097",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3092-L3097"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "SYNC DELAY",
    "action": "Changes sync-output latency from 0 to 20 milliseconds and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3098",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3098"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "AUTOSAVE",
    "action": "Controls automatic saving of patterns, song and settings; OFF is never written by this switch, so restart restores the stored setting or default ON and can resume saving edits after ten stopped idle seconds.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3099",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3099"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2391-2424",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2391-L2424"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "811-817",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L811-L817"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "848-864",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L848-L864"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "IDLE LIGHTS",
    "action": "Sets idle button lights to off, dim or medium and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "FAST SCREEN",
    "action": "Turns experimental faster display use off counterclockwise or on clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3101-3105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3101-L3105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "TWO CORES",
    "action": "Turns experimental dual-core use off counterclockwise or on clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3106-3110",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3106-L3110"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "LANGUAGE",
    "action": "Selects English counterclockwise or the installed language pack clockwise and marks settings for automatic saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3111-3116",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3111-L3116"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3119-3120",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3119-L3120"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on the sample-and-sound count or version row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3117",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3117"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "turn",
    "short_label": "SAVE TARGET",
    "action": "Chooses a pattern destination without writing it and cancels an armed clear.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3397-3401",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3397-L3401"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "short_label": "SONG ITEM",
    "action": "Changes the selected song position to a pattern or scene.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3404-3410",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3404-L3410"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "turn",
    "short_label": "TIME TRACK",
    "action": "Selects one of six tracks in the timing overview.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3417-3419",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3417-L3419"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "turn",
    "short_label": "COPY TARGET",
    "action": "Selects another compatible track, excluding the sampler.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3455-3464",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3455-L3464"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "turn",
    "short_label": "INSTRUMENT",
    "action": "Highlights a drum instrument, then selects and auditions it after the configured entry delay.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2921-2934",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2921-L2934"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2908-2918",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2908-L2918"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "turn",
    "short_label": "PAD",
    "action": "Selects one of sixteen pads.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2842-2848",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2842-L2848"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "turn",
    "short_label": "INSTRUMENT",
    "action": "Highlights a drum instrument, then selects and auditions it after the configured entry delay.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2921-2934",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2921-L2934"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2908-2918",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2908-L2918"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "turn",
    "short_label": "PAD",
    "action": "Selects one of sixteen pads.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2842-2848",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2842-L2848"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "turn",
    "short_label": "TAKE",
    "action": "Highlights a take in the library.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3142-3147",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3142-L3147"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "turn",
    "short_label": "-",
    "action": "Leaves the sampler recorder on the current track.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3149",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3149"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "turn",
    "short_label": "MACHINE MODE",
    "action": "Chooses an instrument for BR-8 or a pad for BP-1, selects SAW/SQUARE for BB-303 or MONO/LEGATO for B-MINI, and changes the BX-7 algorithm, BITTAL oscillator 1 table or BUNO-6 chorus.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2834-2895",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2834-L2895"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "turn",
    "short_label": "MACHINE",
    "action": "After two seconds on a free choice, replaces track sound and per-note locks without a question, keeps notes and timing, and clears undo and redo for that track; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2796-2831",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2796-L2831"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1071-1081",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1071-L1081"
     }
    ]
   },
   {
    "mode": "acid_vco_vcf",
    "gesture": "turn",
    "short_label": "BB-303 WAVE",
    "action": "Selects saw counterclockwise or square clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2850-2857",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2850-L2857"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "turn",
    "short_label": "BB-303 WAVE",
    "action": "Selects saw counterclockwise or square clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2850-2857",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2850-L2857"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "turn",
    "short_label": "FM ALGORITHM",
    "action": "Changes the BX-7 algorithm from 1 to 32.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2868-2875",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2868-L2875"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "turn",
    "short_label": "FM ALGORITHM",
    "action": "Changes the BX-7 algorithm from 1 to 32.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2868-2875",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2868-L2875"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "turn",
    "short_label": "FM ALGORITHM",
    "action": "Changes the BX-7 algorithm from 1 to 32.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2868-2875",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2868-L2875"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "turn",
    "short_label": "FM ALGORITHM",
    "action": "Changes the BX-7 algorithm from 1 to 32.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2868-2875",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2868-L2875"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles BUNO-6 chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "turn",
    "short_label": "INSTRUMENT",
    "action": "Highlights a drum instrument, then selects and auditions it after the configured entry delay.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2921-2934",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2921-L2934"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2908-2918",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2908-L2918"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "turn",
    "short_label": "INSTRUMENT",
    "action": "Highlights a drum instrument, then selects and auditions it after the configured entry delay.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2921-2934",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2921-L2934"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2908-2918",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2908-L2918"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "MACHINE PAGE",
    "action": "Opens MACHINE without changing the sound yet.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2994-2997",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2994-L2997"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "MIDI OUT",
    "action": "Enables note MIDI output clockwise or disables it counterclockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2998-3002",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2998-L3002"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "ACCENT",
    "action": "Changes track accent strength on its row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3003",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3003"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "TRACK LENGTH",
    "action": "Changes track length from 1 to 64 steps on its row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3004",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3004"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "TRACK SPEED",
    "action": "Changes track rate on its row, increasing speed clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3005-3010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3005-L3010"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "TRACK TRANSP",
    "action": "Changes track pitch by semitones on its row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3012-3018",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3012-L3018"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "MIDI CHANNEL",
    "action": "Sets outgoing MIDI channel 1 to 16 on its row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3020-3025",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3020-L3025"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "INTERPOLATE",
    "action": "Selects linear counterclockwise or Hermite clockwise for the sampler.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3027",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3027"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "INIT SOUND",
    "action": "Asks before resetting current-machine sound settings in memory, without creating an undo copy; persistence follows pattern saving.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3028-3031",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3028-L3031"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1058-1067",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1058-L1067"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "turn",
    "short_label": "PAD",
    "action": "Selects one of sixteen pads.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2842-2848",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2842-L2848"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "turn",
    "short_label": "PAD",
    "action": "Selects one of sixteen pads.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2842-2848",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2842-L2848"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "turn",
    "short_label": "PAD",
    "action": "Selects one of sixteen pads.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2842-2848",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2842-L2848"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "turn",
    "short_label": "PAD",
    "action": "Selects one of sixteen pads.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2842-2848",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2842-L2848"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn_while_holding:button_home",
    "short_label": "FINE TEMPO",
    "action": "Changes tempo in tenths of a BPM.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3313-3317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3313-L3317"
     }
    ]
   },
   {
    "mode": "held_step_drums",
    "gesture": "turn",
    "short_label": "STEP REPEATS",
    "action": "Chooses one to four repeats or a flam for the held grid step.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2537-2543",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2537-L2543"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "turn",
    "short_label": "STEP CHANCE",
    "action": "Changes note probability or selects fill-only and no-fill conditions.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2585-2590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2585-L2590"
     }
    ]
   },
   {
    "mode": "rec_notes",
    "gesture": "turn",
    "short_label": "REC GATE",
    "action": "Changes all notes on the chosen step from a 10-percent gate through full-step gates to a tie.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2682-2703",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2682-L2703"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "turn",
    "short_label": "BB-303 WAVE",
    "action": "Selects saw counterclockwise or square clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2850-2857",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2850-L2857"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "turn",
    "short_label": "MINI MODE",
    "action": "Selects mono counterclockwise or legato clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2859-2866",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2859-L2866"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "turn",
    "short_label": "FM ALGORITHM",
    "action": "Changes the BX-7 algorithm from 1 to 32.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2868-2875",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2868-L2875"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "turn",
    "short_label": "OSC 1 TABLE",
    "action": "Changes oscillator 1 wavetable, including the loaded sound’s own table.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2877-2884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2877-L2884"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "turn",
    "short_label": "CHORUS",
    "action": "Cycles chorus through off, I, II and I+II.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2886-2892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2886-L2892"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3443-3454",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3443-L3454"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3319-3323",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3323"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3324-3327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3324-L3327"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3328"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3329",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3329"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3330-3344",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3330-L3344"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   }
  ],
  "encoder_select": [
   {
    "mode": "home",
    "gesture": "turn",
    "short_label": "TRACK CURSOR",
    "action": "Moves the cursor among six tracks.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "turn",
    "short_label": "TRACK CURSOR",
    "action": "Moves the cursor among six tracks.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3386"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing on Scenes.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3373-3381",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3373-L3381"
     }
    ]
   },
   {
    "mode": "global",
    "gesture": "turn",
    "short_label": "GLOBAL ROW",
    "action": "Selects one of six global settings.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3388-3392",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3388-L3392"
     }
    ]
   },
   {
    "mode": "system",
    "gesture": "turn",
    "short_label": "SYSTEM ROW",
    "action": "Selects one of eleven System rows.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3393-3396",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3393-L3396"
     }
    ]
   },
   {
    "mode": "save_menu",
    "gesture": "turn",
    "short_label": "SAVE ROW",
    "action": "Selects a save, save-as, song-save, clear-pattern or event-count row.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3397-3401",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3397-L3401"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "turn",
    "short_label": "SONG ROW",
    "action": "Selects an existing song position.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3402-3404",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3402-L3404"
     }
    ]
   },
   {
    "mode": "time",
    "gesture": "turn",
    "short_label": "TIME TRACK",
    "action": "Selects one of six tracks in the timing overview.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3417-3419",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3417-L3419"
     }
    ]
   },
   {
    "mode": "fx_delay",
    "gesture": "turn",
    "short_label": "FX PAGE",
    "action": "Selects Delay, Reverb or Master effects.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3439-3442",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3439-L3442"
     }
    ]
   },
   {
    "mode": "fx_reverb",
    "gesture": "turn",
    "short_label": "FX PAGE",
    "action": "Selects Delay, Reverb or Master effects.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3439-3442",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3439-L3442"
     }
    ]
   },
   {
    "mode": "fx_master",
    "gesture": "turn",
    "short_label": "FX PAGE",
    "action": "Selects Delay, Reverb or Master effects.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3439-3442",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3439-L3442"
     }
    ]
   },
   {
    "mode": "copy_channel",
    "gesture": "turn",
    "short_label": "COPY TARGET",
    "action": "Selects another compatible track, excluding the sampler.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3455-3464",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3455-L3464"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "sound_drums",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mix_track",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "duck",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "more",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "break",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "arp",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "loop",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "midi",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "scale_track",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "machine",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "acid_vco_vcf",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "acid_env",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_control",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_osc_1",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_osc_2",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_osc_3",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_mixer",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_filter",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_f_contour",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_l_contour",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "mini_output",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "fm_algorithm",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "fm_eg",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "fm_voice",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "fm_lfo",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_osc_1",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_osc_1_plus",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_osc_2",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_osc_2_plus",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_filter",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_filter_plus",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_env_1",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_env_2",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_lfo_1",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_macro_1_2",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_macro_3_4",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "bittal_voice",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_lfo",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_dco",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_dco_wave",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_hpf_vcf",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_vcf_mod",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_vca",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_env",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "buno_chorus",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "instrument_hit",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "instrument_instrument",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through sound subpages and track tabs, including each row of MORE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through pad subpages and track tabs, scheduling any dirty take metadata for writing when leaving PADS without a question; write jobs require stopped transport.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "960-965",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L960-L965"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through pad subpages and track tabs, scheduling any dirty take metadata for writing when leaving PADS without a question; write jobs require stopped transport.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "960-965",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L960-L965"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through pad subpages and track tabs, scheduling any dirty take metadata for writing when leaving PADS without a question; write jobs require stopped transport.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "960-965",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L960-L965"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves through pad subpages and track tabs, scheduling any dirty take metadata for writing when leaving PADS without a question; write jobs require stopped transport.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "960-965",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L960-L965"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "702-718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "turn_while_holding:button_home",
    "short_label": "ENTER TRACK",
    "action": "Highlights a track and enters it when HOME is released.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3313-3317",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3313-L3317"
     }
    ]
   },
   {
    "mode": "held_step_drums",
    "gesture": "turn",
    "short_label": "STEP ACCENT",
    "action": "Selects normal counterclockwise or accented clockwise.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2533-2536",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2533-L2536"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "turn",
    "short_label": "STEP HIT",
    "action": "Moves notes through ghost, normal and accent levels.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2579-2584",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2579-L2584"
     }
    ]
   },
   {
    "mode": "rec_notes",
    "gesture": "turn",
    "short_label": "REC STEP",
    "action": "Selects the note step to edit.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2674-2680",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2674-L2680"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves to neighboring track tabs and sound subpages.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves to neighboring track tabs and sound subpages.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves to neighboring track tabs and sound subpages.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves to neighboring track tabs and sound subpages.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "turn",
    "short_label": "PAGE",
    "action": "Moves to neighboring track tabs and sound subpages.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3035-3077",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3035-L3077"
     }
    ]
   },
   {
    "mode": "scale_global",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3443-3454",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3443-L3454"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3319-3323",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3323"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3324-3327",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3324-L3327"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3328",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3328"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3329",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3329"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3330-3344",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3330-L3344"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "turn",
    "short_label": "-",
    "action": "Does nothing in this view or layer.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3349-3357",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3349-L3357"
     }
    ]
   }
  ],
  "key_f3": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 01 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 01 or cancels the queue if 01 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 01 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 01 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 01 or cancels the queue if 01 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 01 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 01 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 01 or cancels the queue if 01 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 01 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches scene A now when stopped or at the next master cycle while playing, or adds it to an eight-entry scene chain while a different scene key is held.",
    "short_label": "SCENE A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene A as a chain modifier without cancelling playback.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1787"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 01 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays F3 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds F3 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP F3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to -7 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 1 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 1, recording its hit when REC and playback are on.",
    "short_label": "HIT 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 1 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 1 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 1 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 1 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 1 across its full grid or all notes at visible step 1 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 1 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 1 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 1 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 1 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 1 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 1 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 01, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 01",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 01, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 01, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 01, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 01, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 01, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 01, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies stutter 1/4 to the mix until release, quantized to the next sixteenth while playing; buffer effects are unavailable while a take is unsaved or being recorded.",
    "short_label": "STUTTER 1/4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 1 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 1 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 1 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 1 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 1 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 1 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 1 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 1 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_fs3": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 1.",
    "short_label": "T1 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "long_press",
    "action": "Solos track 1 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Toggles track 1 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T1 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 1.",
    "short_label": "T1 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "long_press",
    "action": "Solos track 1 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Toggles track 1 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T1 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 1.",
    "short_label": "T1 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "long_press",
    "action": "Solos track 1 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Toggles track 1 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T1 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 1.",
    "short_label": "T1 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "long_press",
    "action": "Solos track 1 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Toggles track 1 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T1 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays F#3 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds F#3 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP F#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to -6 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays the chord on scale degree 1 using the selected voicing and held chord extensions, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "CHORD DEG 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 1 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 1 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 1 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 1 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 1 of the current eight-element bank.",
    "short_label": "BANK HIT 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 1 of the current eight-element bank.",
    "short_label": "BANK HIT 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets this track’s playback speed to ×2.",
    "short_label": "SPEED ×2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1801-1806",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1801-L1806"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Copies the selected track’s sequence data into the temporary track clipboard.",
    "short_label": "COPY TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1830",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1830"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1039-1045",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1039-L1045"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Sets the ROLL rate to 1/8, updating lanes already rolling.",
    "short_label": "RATE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1257-1263",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1257-L1263"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Applies the +7 extension to chords played while this key is held.",
    "short_label": "+7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Removes the held +7 chord extension.",
    "short_label": "END +7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Applies the +7 extension to chords played while this key is held.",
    "short_label": "+7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Removes the held +7 chord extension.",
    "short_label": "END +7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "hold",
    "action": "Restricts a following white destination key to track 1; if several track keys are held, the highest numbered one wins.",
    "short_label": "TRACK 1 COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1881-1892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1881-L1892"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Toggles track 1 mute immediately.",
    "short_label": "MUTE T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1654-1661",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1654-L1661"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Copies the selected pad’s assignment, playback settings, level and choke group to its temporary clipboard.",
    "short_label": "COPY PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1478-1486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1478-L1486"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Copies the selected pad’s assignment, playback settings, level and choke group to its temporary clipboard.",
    "short_label": "COPY PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1478-1486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1478-L1486"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Copies the selected pad’s assignment, playback settings, level and choke group to its temporary clipboard.",
    "short_label": "COPY PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1478-1486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1478-L1486"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Copies the selected pad’s assignment, playback settings, level and choke group to its temporary clipboard.",
    "short_label": "COPY PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1972",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1972"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1478-1486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1478-L1486"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Rebuilds the working pad kit from the selected take’s detected hits, asking before replacing a nonempty kit and marking the pattern for saving with undo limited to the grid rather than the old pad assignments.",
    "short_label": "KIT HITS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1954-1955",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1954-L1955"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1573-1585",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1573-L1585"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "369-386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L369-L386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "993-1010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L993-L1010"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 1 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 1 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 1 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 1 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 1 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 1 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_g3": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 02 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 02 or cancels the queue if 02 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 02 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 02 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 02 or cancels the queue if 02 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 02 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 02 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 02 or cancels the queue if 02 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 02 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches scene B now when stopped or at the next master cycle while playing, or adds it to an eight-entry scene chain while a different scene key is held.",
    "short_label": "SCENE B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene B as a chain modifier without cancelling playback.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1787"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 02 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays G3 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds G3 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP G3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to -5 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 2 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 2, recording its hit when REC and playback are on.",
    "short_label": "HIT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 2 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 2 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 2 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 2 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 2 across its full grid or all notes at visible step 2 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 2 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 2 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 2 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 2 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 2 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 2 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 02, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 02",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 02, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 02, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 02, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 02, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 02, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 02, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies stutter 1/8 to the mix until release, quantized to the next sixteenth while playing; buffer effects are unavailable while a take is unsaved or being recorded.",
    "short_label": "STUTTER 1/8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 2 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 2 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 2 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 2 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 2 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 2 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 2 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 2 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_gs3": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 2.",
    "short_label": "T2 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "long_press",
    "action": "Solos track 2 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Toggles track 2 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T2 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 2.",
    "short_label": "T2 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "long_press",
    "action": "Solos track 2 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Toggles track 2 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T2 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 2.",
    "short_label": "T2 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "long_press",
    "action": "Solos track 2 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Toggles track 2 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T2 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 2.",
    "short_label": "T2 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "long_press",
    "action": "Solos track 2 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Toggles track 2 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T2 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays G#3 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds G#3 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP G#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to -4 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays the chord on scale degree 2 using the selected voicing and held chord extensions, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "CHORD DEG 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 2 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 2 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 2 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 2 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 2 of the current eight-element bank.",
    "short_label": "BANK HIT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 2 of the current eight-element bank.",
    "short_label": "BANK HIT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets this track’s playback speed to ×3/2.",
    "short_label": "SPEED ×3/2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1801-1806",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1801-L1806"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Replaces the selected track’s sequence data from a compatible clipboard immediately without a question, leaving its machine and sound settings and allowing track undo; flash changes with a later pattern save or autosave.",
    "short_label": "PASTE TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1831",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1831"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1047-1057",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1047-L1057"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_audio.c",
      "lines": "202-206",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_audio.c#L202-L206"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Sets the ROLL rate to 1/16, updating lanes already rolling.",
    "short_label": "RATE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1257-1263",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1257-L1263"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Applies the +9 extension to chords played while this key is held.",
    "short_label": "+9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Removes the held +9 chord extension.",
    "short_label": "END +9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Applies the +9 extension to chords played while this key is held.",
    "short_label": "+9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Removes the held +9 chord extension.",
    "short_label": "END +9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "hold",
    "action": "Restricts a following white destination key to track 2; if several track keys are held, the highest numbered one wins.",
    "short_label": "TRACK 2 COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1881-1892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1881-L1892"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Toggles track 2 mute immediately.",
    "short_label": "MUTE T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1654-1661",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1654-L1661"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Replaces the selected pad’s assignment and playback settings, level and choke group from its clipboard immediately without a question, marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "PASTE PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1973",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1973"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1488-1498",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1488-L1498"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Replaces the selected pad’s assignment and playback settings, level and choke group from its clipboard immediately without a question, marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "PASTE PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1973",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1973"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1488-1498",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1488-L1498"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Replaces the selected pad’s assignment and playback settings, level and choke group from its clipboard immediately without a question, marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "PASTE PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1973",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1973"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1488-1498",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1488-L1498"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Replaces the selected pad’s assignment and playback settings, level and choke group from its clipboard immediately without a question, marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "PASTE PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1973",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1973"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1488-1498",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1488-L1498"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Rebuilds the working pad kit from the selected take’s sixteen equal pieces, asking before replacing a nonempty kit and marking the pattern for saving with undo limited to the grid rather than the old pad assignments.",
    "short_label": "KIT 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1954-1955",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1954-L1955"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1573-1585",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1573-L1585"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "369-386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L369-L386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "993-1010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L993-L1010"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 2 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 2 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 2 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 2 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 2 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 2 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_a3": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 03 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 03 or cancels the queue if 03 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 03 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 03 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 03 or cancels the queue if 03 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 03 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 03 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 03 or cancels the queue if 03 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 03 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches scene C now when stopped or at the next master cycle while playing, or adds it to an eight-entry scene chain while a different scene key is held.",
    "short_label": "SCENE C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene C as a chain modifier without cancelling playback.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1787"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 03 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays A3 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds A3 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP A3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to -3 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 3 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 3, recording its hit when REC and playback are on.",
    "short_label": "HIT 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 3 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 3 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 3 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 3 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 3 across its full grid or all notes at visible step 3 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 3 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 3 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 3 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 3 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 3 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 3 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 03, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 03",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 03, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 03, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 03, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 03, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 03, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 03, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies stutter 1/16 to the mix until release, quantized to the next sixteenth while playing; buffer effects are unavailable while a take is unsaved or being recorded.",
    "short_label": "STUTTER 1/16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 3 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 3 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 3 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 3 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 3 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 3 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 3 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 3 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_as3": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 3.",
    "short_label": "T3 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "long_press",
    "action": "Solos track 3 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Toggles track 3 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T3 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 3.",
    "short_label": "T3 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "long_press",
    "action": "Solos track 3 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Toggles track 3 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T3 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 3.",
    "short_label": "T3 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "long_press",
    "action": "Solos track 3 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Toggles track 3 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T3 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 3.",
    "short_label": "T3 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "long_press",
    "action": "Solos track 3 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Toggles track 3 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T3 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays A#3 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds A#3 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP A#3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to -2 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays the chord on scale degree 3 using the selected voicing and held chord extensions, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "CHORD DEG 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 3 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 3 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 3 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 3 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 3 of the current eight-element bank.",
    "short_label": "BANK HIT 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 3 of the current eight-element bank.",
    "short_label": "BANK HIT 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets this track’s playback speed to ×1.",
    "short_label": "SPEED ×1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1801-1806",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1801-L1806"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Clears the selected track’s sequence events and step locks immediately without a question, retaining its sound and allowing track undo; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR TRACK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1832",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1832"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1029-1037",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1029-L1037"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_pattern.c",
      "lines": "73-85",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_pattern.c#L73-L85"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Sets the ROLL rate to 1/32, updating lanes already rolling.",
    "short_label": "RATE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1257-1263",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1257-L1263"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Applies the SUS2 extension to chords played while this key is held.",
    "short_label": "SUS2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Removes the held SUS2 chord extension.",
    "short_label": "END SUS2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Applies the SUS2 extension to chords played while this key is held.",
    "short_label": "SUS2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Removes the held SUS2 chord extension.",
    "short_label": "END SUS2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "hold",
    "action": "Restricts a following white destination key to track 3; if several track keys are held, the highest numbered one wins.",
    "short_label": "TRACK 3 COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1881-1892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1881-L1892"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Toggles track 3 mute immediately.",
    "short_label": "MUTE T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1654-1661",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1654-L1661"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Empties the selected pad assignment immediately without a question, leaving the audio take intact and marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "CLEAR PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1974",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1974"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1500-1505",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1500-L1505"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Empties the selected pad assignment immediately without a question, leaving the audio take intact and marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "CLEAR PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1974",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1974"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1500-1505",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1500-L1505"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Empties the selected pad assignment immediately without a question, leaving the audio take intact and marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "CLEAR PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1974",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1974"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1500-1505",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1500-L1505"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Empties the selected pad assignment immediately without a question, leaving the audio take intact and marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "CLEAR PAD",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1974",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1974"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1500-1505",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1500-L1505"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Rebuilds the working pad kit from the selected take’s eight equal pieces, asking before replacing a nonempty kit and marking the pattern for saving with undo limited to the grid rather than the old pad assignments.",
    "short_label": "KIT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1954-1955",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1954-L1955"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1573-1585",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1573-L1585"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "369-386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L369-L386"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "993-1010",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L993-L1010"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 3 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 3 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 3 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 3 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 3 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 3 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_b3": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 04 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 04 or cancels the queue if 04 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 04 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 04 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 04 or cancels the queue if 04 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 04 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 04 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 04 or cancels the queue if 04 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 04 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches scene D now when stopped or at the next master cycle while playing, or adds it to an eight-entry scene chain while a different scene key is held.",
    "short_label": "SCENE D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene D as a chain modifier without cancelling playback.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1787"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 04 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays B3 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds B3 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP B3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to -1 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 4 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 4, recording its hit when REC and playback are on.",
    "short_label": "HIT 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 4 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 4 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 4 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 4 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 4 across its full grid or all notes at visible step 4 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 4 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 4 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 4 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 4 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 4 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 4 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 04, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 04",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 04, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 04, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 04, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 04, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 04, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 04, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies stutter 1/32 to the mix until release, quantized to the next sixteenth while playing; buffer effects are unavailable while a take is unsaved or being recorded.",
    "short_label": "STUTTER 1/32",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 4 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 4 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 4 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 4 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 4 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 4 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 4 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 4 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_c4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 05 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 05 or cancels the queue if 05 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 05 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 05 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 05 or cancels the queue if 05 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 05 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 05 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 05 or cancels the queue if 05 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 05 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Replaces scene A in the working song with the current pattern and track and grid-lane mutes immediately without a question, marking it for later song saving.",
    "short_label": "STORE A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1671-1682",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1671-L1682"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 05 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays C4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds C4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP C4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +0 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 5 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 5, recording its hit when REC and playback are on.",
    "short_label": "HIT 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 5 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 5 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 5 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 5 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 5 across its full grid or all notes at visible step 5 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 5 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 5 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 5 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 5 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 5 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 5 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 05, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 05",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 05, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 05, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 05, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 05, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 05, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 05, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies reverse 1/8 to the mix until release, quantized to the next sixteenth while playing; buffer effects are unavailable while a take is unsaved or being recorded.",
    "short_label": "REVERSE 1/8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 5 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 5 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 5 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 5 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 5 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 5 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 5 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 5 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_cs4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 4.",
    "short_label": "T4 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "long_press",
    "action": "Solos track 4 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Toggles track 4 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T4 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 4.",
    "short_label": "T4 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "long_press",
    "action": "Solos track 4 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Toggles track 4 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T4 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 4.",
    "short_label": "T4 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "long_press",
    "action": "Solos track 4 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Toggles track 4 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T4 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 4.",
    "short_label": "T4 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "long_press",
    "action": "Solos track 4 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Toggles track 4 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T4 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays C#4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds C#4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP C#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +1 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays the chord on scale degree 4 using the selected voicing and held chord extensions, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "CHORD DEG 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 4 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 4 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 4 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 4 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 4 of the current eight-element bank.",
    "short_label": "BANK HIT 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 4 of the current eight-element bank.",
    "short_label": "BANK HIT 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets this track’s playback speed to ×3/4.",
    "short_label": "SPEED ×3/4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1801-1806",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1801-L1806"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "On the sampler, replaces this bar’s grid hits with BREAK’s pad choices, repeats and silences immediately without a question, retaining reverse and half-speed as live effects and allowing track undo; flash changes with a later pattern save or autosave.",
    "short_label": "CAPTURE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1833",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1833"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1388-1421",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1388-L1421"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Sets the ROLL rate to 1/8T, updating lanes already rolling.",
    "short_label": "RATE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1257-1263",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1257-L1263"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Applies the SUS4 extension to chords played while this key is held.",
    "short_label": "SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Removes the held SUS4 chord extension.",
    "short_label": "END SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Applies the SUS4 extension to chords played while this key is held.",
    "short_label": "SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Removes the held SUS4 chord extension.",
    "short_label": "END SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "hold",
    "action": "Restricts a following white destination key to track 4; if several track keys are held, the highest numbered one wins.",
    "short_label": "TRACK 4 COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1881-1892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1881-L1892"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Toggles track 4 mute immediately.",
    "short_label": "MUTE T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1654-1661",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1654-L1661"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Moves the selected pad’s start to the nearest detected hit while keeping its end, marking the pattern for saving.",
    "short_label": "SNAP TO HIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1975",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1975"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1506-1521",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1506-L1521"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Moves the selected pad’s start to the nearest detected hit while keeping its end, marking the pattern for saving.",
    "short_label": "SNAP TO HIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1975",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1975"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1506-1521",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1506-L1521"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Moves the selected pad’s start to the nearest detected hit while keeping its end, marking the pattern for saving.",
    "short_label": "SNAP TO HIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1975",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1975"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1506-1521",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1506-L1521"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Moves the selected pad’s start to the nearest detected hit while keeping its end, marking the pattern for saving.",
    "short_label": "SNAP TO HIT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1975",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1975"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1506-1521",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1506-L1521"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Replaces the selected pad with the whole selected take immediately without a question, marking the pattern for saving with no undo for the old pad assignment.",
    "short_label": "WHOLE TAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1956-1960",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1956-L1960"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "389-395",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L389-L395"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 4 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 4 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 4 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 4 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 4 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 4 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_d4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 06 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 06 or cancels the queue if 06 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 06 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 06 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 06 or cancels the queue if 06 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 06 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 06 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 06 or cancels the queue if 06 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 06 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Replaces scene B in the working song with the current pattern and track and grid-lane mutes immediately without a question, marking it for later song saving.",
    "short_label": "STORE B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1671-1682",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1671-L1682"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 06 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays D4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds D4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP D4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +2 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 6 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 6, recording its hit when REC and playback are on.",
    "short_label": "HIT 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 6 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 6 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 6 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 6 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 6 across its full grid or all notes at visible step 6 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 6 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 6 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 6 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 6 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 6 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 6 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 06, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 06",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 06, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 06, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 06, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 06, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 06, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 06, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies reverse 1/4 to the mix until release, quantized to the next sixteenth while playing; buffer effects are unavailable while a take is unsaved or being recorded.",
    "short_label": "REVERSE 1/4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 6 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 6 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 6 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 6 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 6 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 6 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 6 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 6 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_ds4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 5.",
    "short_label": "T5 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "long_press",
    "action": "Solos track 5 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Toggles track 5 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T5 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 5.",
    "short_label": "T5 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "long_press",
    "action": "Solos track 5 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Toggles track 5 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T5 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 5.",
    "short_label": "T5 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "long_press",
    "action": "Solos track 5 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Toggles track 5 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T5 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 5.",
    "short_label": "T5 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "long_press",
    "action": "Solos track 5 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Toggles track 5 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T5 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays D#4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds D#4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP D#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +3 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays the chord on scale degree 5 using the selected voicing and held chord extensions, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "CHORD DEG 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 5 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 5 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 5 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 5 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 5 of the current eight-element bank.",
    "short_label": "BANK HIT 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 5 of the current eight-element bank.",
    "short_label": "BANK HIT 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets this track’s playback speed to ×1/2.",
    "short_label": "SPEED ×1/2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1801-1806",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1801-L1806"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1828-1834",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1834"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Sets the ROLL rate to 1/16T, updating lanes already rolling.",
    "short_label": "RATE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1257-1263",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1257-L1263"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "hold",
    "action": "Restricts a following white destination key to track 5; if several track keys are held, the highest numbered one wins.",
    "short_label": "TRACK 5 COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1881-1892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1881-L1892"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Toggles track 5 mute immediately.",
    "short_label": "MUTE T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1654-1661",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1654-L1661"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1963",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1963"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 5 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 5 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 5 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 5 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 5 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 5 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_e4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 07 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 07 or cancels the queue if 07 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 07 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 07 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 07 or cancels the queue if 07 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 07 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 07 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 07 or cancels the queue if 07 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 07 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Replaces scene C in the working song with the current pattern and track and grid-lane mutes immediately without a question, marking it for later song saving.",
    "short_label": "STORE C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1671-1682",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1671-L1682"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 07 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays E4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds E4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP E4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +4 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 7 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 7, recording its hit when REC and playback are on.",
    "short_label": "HIT 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 7 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 7 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 7 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 7 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 7 across its full grid or all notes at visible step 7 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 7 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 7 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 7 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 7 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 7 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 7 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 07, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 07",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 07, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 07, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 07, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 07, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 07, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 07, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies tape stop to the mix until release, quantized to the next sixteenth while playing; buffer effects are unavailable while a take is unsaved or being recorded.",
    "short_label": "TAPE STOP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 7 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 7 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 7 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 7 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 7 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 7 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 7 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 7 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_f4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 08 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 08 or cancels the queue if 08 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 08 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 08 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 08 or cancels the queue if 08 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 08 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 08 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 08 or cancels the queue if 08 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 08 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Replaces scene D in the working song with the current pattern and track and grid-lane mutes immediately without a question, marking it for later song saving.",
    "short_label": "STORE D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1671-1682",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1671-L1682"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 08 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays F4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds F4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP F4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +5 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 8 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 8, recording its hit when REC and playback are on.",
    "short_label": "HIT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 8 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 8 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 8 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 8 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 8 across its full grid or all notes at visible step 8 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 8 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 8 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 8 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 8 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 8 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 8 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 08, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 08",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 08, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 08, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 08, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 08, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 08, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 08, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies gate to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "GATE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 8 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 8 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 8 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 8 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 8 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 8 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 8 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 8 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_fs4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 6.",
    "short_label": "T6 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "long_press",
    "action": "Solos track 6 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Toggles track 6 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T6 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 6.",
    "short_label": "T6 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "long_press",
    "action": "Solos track 6 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Toggles track 6 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T6 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 6.",
    "short_label": "T6 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "long_press",
    "action": "Solos track 6 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Toggles track 6 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T6 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Prepares a short-release mute toggle or held solo for track 6.",
    "short_label": "T6 MUTE/SOLO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1718"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "long_press",
    "action": "Solos track 6 after 300 ms until release, remembering the previous track mutes.",
    "short_label": "SOLO T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3521-3531",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3521-L3531"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Toggles track 6 mute after a short press, or restores the earlier mutes after a solo.",
    "short_label": "T6 MUTE END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1752-1758",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1752-L1758"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays F#4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds F#4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP F#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +6 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays the chord on scale degree 6 using the selected voicing and held chord extensions, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "CHORD DEG 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 6 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 6 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 6 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 6 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 6 of the current eight-element bank.",
    "short_label": "BANK HIT 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 6 of the current eight-element bank.",
    "short_label": "BANK HIT 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets this track’s playback speed to ×1/4.",
    "short_label": "SPEED ×1/4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1801-1806",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1801-L1806"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1828-1834",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1834"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Sets the ROLL rate to 1/32T, updating lanes already rolling.",
    "short_label": "RATE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1257-1263",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1257-L1263"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "hold",
    "action": "Restricts a following white destination key to track 6; if several track keys are held, the highest numbered one wins.",
    "short_label": "TRACK 6 COPY",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1881-1892",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1881-L1892"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Toggles track 6 mute immediately.",
    "short_label": "MUTE T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1654-1661",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1654-L1661"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1963",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1963"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 6 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 6 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 6 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 6 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 6 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 6 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_g4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 09 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 09 or cancels the queue if 09 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 09 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 09 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 09 or cancels the queue if 09 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 09 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 09 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 09 or cancels the queue if 09 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 09 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 09 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays G4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds G4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP G4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +7 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 9 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 9, recording its hit when REC and playback are on.",
    "short_label": "HIT 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 9 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 9 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 9 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 9 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 9 across its full grid or all notes at visible step 9 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 9 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 9 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 9 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 9 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 9 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 9 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 09, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 09",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 09, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 09, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 09, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 09, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 09, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 09, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies low-pass to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "LOW-PASS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 9 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 9 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 9 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 9 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 9 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 9 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 9 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 9 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_gs4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Launches stored scene A now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases scene A as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Launches stored scene A now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases scene A as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Launches stored scene A now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases scene A as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches stored scene A now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE A",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene A as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays G#4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds G#4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP G#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +8 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays the chord on scale degree 7 using the selected voicing and held chord extensions, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "CHORD DEG 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1130",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1130"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 7 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 7 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 7 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 7 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 7 of the current eight-element bank.",
    "short_label": "BANK HIT 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 7 of the current eight-element bank.",
    "short_label": "BANK HIT 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the selected track to 1 full bars at its current speed, limited to 64 steps and applied to all grid lanes.",
    "short_label": "BARS 1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1798-1801",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1798-L1801"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1828-1834",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1834"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Toggles the crescendo ramp, returning to a flat roll when the same ramp is chosen again.",
    "short_label": "CRESCENDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1863-1868",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1863-L1868"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1963",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1963"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 7 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 7 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 7 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 7 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 7 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 7 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_a4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 10 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 10 or cancels the queue if 10 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 10 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 10 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 10 or cancels the queue if 10 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 10 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 10 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 10 or cancels the queue if 10 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 10 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 10 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays A4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds A4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP A4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +9 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 10 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 10, recording its hit when REC and playback are on.",
    "short_label": "HIT 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 10 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 10 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 10 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 10 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 10 across its full grid or all notes at visible step 10 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 10 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 10 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 10 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 10 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 10 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 10 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 10, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 10, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 10, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 10, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 10, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 10, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 10, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies high-pass to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "HIGH-PASS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 10 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 10 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 10 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 10 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 10 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 10 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 10 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 10",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 10 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_as4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Launches stored scene B now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases scene B as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Launches stored scene B now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases scene B as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Launches stored scene B now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases scene B as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches stored scene B now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE B",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene B as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays A#4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds A#4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP A#4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +10 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Applies the +7 chord extension to chords played while held.",
    "short_label": "+7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Removes the held +7 chord extension.",
    "short_label": "END +7",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects and strikes element 8 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes element 8 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Plays scale degree 8 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Adds or removes scale degree 8 at the held step, replacing a newly created placeholder with the first note and allowing at most four notes per step.",
    "short_label": "WRITE DEGREE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1924",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1924"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1199-1220",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1199-L1220"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 8 of the current eight-element bank.",
    "short_label": "BANK HIT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, selects and plays element 8 of the current eight-element bank.",
    "short_label": "BANK HIT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1817-1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1817-L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "release",
    "action": "On the sampler, releases the most recent held pad according to its PLAY mode.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the selected track to 2 full bars at its current speed, limited to 64 steps and applied to all grid lanes.",
    "short_label": "BARS 2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1798-1801",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1798-L1801"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1828-1834",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1834"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Toggles the decrescendo ramp, returning to a flat roll when the same ramp is chosen again.",
    "short_label": "DECRESCENDO",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1863-1868",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1863-L1868"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1981"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1963",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1963"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects and strikes element 8 of the current eight-element bank, recording a pad hit when REC and playback are on.",
    "short_label": "BANK HIT 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1907-1913",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1907-L1913"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Releases the latest held pad key according to its PLAY mode; drum hits continue.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Plays scale degree 8 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Plays scale degree 8 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Plays scale degree 8 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Plays scale degree 8 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Plays scale degree 8 in the selected note-entry octave and records it when REC and playback are on.",
    "short_label": "DEGREE 8",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1921-1927",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1921-L1927"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Releases the note and completes its recorded held duration.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   }
  ],
  "key_b4": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 11 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 11 or cancels the queue if 11 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 11 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 11 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 11 or cancels the queue if 11 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 11 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 11 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 11 or cancels the queue if 11 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 11 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 11 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays B4 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds B4 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP B4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +11 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 11 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 11, recording its hit when REC and playback are on.",
    "short_label": "HIT 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 11 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 11 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 11 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 11 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 11 across its full grid or all notes at visible step 11 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 11 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 11 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 11 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 11 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 11 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 11 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 11, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 11, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 11, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 11, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 11, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 11, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 11, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies bitcrush to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "BITCRUSH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 11 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 11 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 11 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 11 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 11 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 11 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 11 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 11",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 11 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_c5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 12 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 12 or cancels the queue if 12 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 12 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 12 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 12 or cancels the queue if 12 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 12 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 12 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 12 or cancels the queue if 12 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 12 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 12 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays C5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds C5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP C5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +12 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 12 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 12, recording its hit when REC and playback are on.",
    "short_label": "HIT 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 12 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 12 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 12 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 12 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 12 across its full grid or all notes at visible step 12 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 12 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 12 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 12 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 12 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 12 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 12 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 12, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 12, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 12, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 12, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 12, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 12, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 12, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies rate reduce to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "RATE REDUCE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 12 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 12 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 12 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 12 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 12 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 12 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 12 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 12",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 12 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_cs5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Launches stored scene C now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases scene C as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Launches stored scene C now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases scene C as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Launches stored scene C now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases scene C as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches stored scene C now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE C",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene C as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Removes the selected song entry immediately without a question, marking the working song for later saving with no song undo.",
    "short_label": "DELETE SONG",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1596-1604",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1596-L1604"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays C#5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds C#5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP C#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +13 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Applies the +9 chord extension to chords played while held.",
    "short_label": "+9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Removes the held +9 chord extension.",
    "short_label": "END +9",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Switches between elements 1–8 and 9–16, keeping the same relative selection.",
    "short_label": "BANK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1913-1916",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1913-L1916"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Switches between elements 1–8 and 9–16, keeping the same relative selection.",
    "short_label": "BANK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1913-1916",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1913-L1916"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave down, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave down, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "On a grid track, switches to the other bank of eight instruments or pads.",
    "short_label": "BANK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1821"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "On a grid track, switches to the other bank of eight instruments or pads.",
    "short_label": "BANK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1821",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1821"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the selected track to 3 full bars at its current speed, limited to 64 steps and applied to all grid lanes.",
    "short_label": "BARS 3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1798-1801",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1798-L1801"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1828-1834",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1834"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1869",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1869"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Enables live reverse while held for sampler pad playing.",
    "short_label": "REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Disables this held live reverse effect.",
    "short_label": "END REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Enables live reverse while held for sampler pad playing.",
    "short_label": "REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Disables this held live reverse effect.",
    "short_label": "END REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Enables live reverse while held for sampler pad playing.",
    "short_label": "REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Disables this held live reverse effect.",
    "short_label": "END REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Enables live reverse while held for sampler pad playing.",
    "short_label": "REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Disables this held live reverse effect.",
    "short_label": "END REVERSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1963",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1963"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Switches between elements 1–8 and 9–16, keeping the same relative selection.",
    "short_label": "BANK",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1913-1916",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1913-L1916"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave down, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave down, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave down, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave down, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave down, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT -",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   }
  ],
  "key_d5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 13 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 13 or cancels the queue if 13 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 13 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 13 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 13 or cancels the queue if 13 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 13 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 13 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 13 or cancels the queue if 13 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 13 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 13 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays D5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds D5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP D5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +14 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 13 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 13, recording its hit when REC and playback are on.",
    "short_label": "HIT 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 13 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 13 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 13 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 13 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 13 across its full grid or all notes at visible step 13 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 13 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 13 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 13 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 13 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 13 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 13 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 13, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 13, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 13, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 13, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 13, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 13, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 13, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies delay throw to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "DELAY THROW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 13 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 13 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 13 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 13 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 13 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 13 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 13 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 13",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 13 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_ds5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Launches stored scene D now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases scene D as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Launches stored scene D now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases scene D as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Launches stored scene D now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases scene D as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Launches stored scene D now when stopped or at the next master cycle while playing, or adds it to a scene chain of up to eight selections while another scene key is held.",
    "short_label": "SCENE D",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1684-1698",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1684-L1698"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1719",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1719"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "405-413",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L405-L413"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_seq.c",
      "lines": "453-468",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L453-L468"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Releases scene D as a chain modifier without stopping the scene.",
    "short_label": "UNHOLD SCENE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1760",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1760"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays D#5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds D#5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP D#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +15 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Applies the SUS2 chord extension to chords played while held.",
    "short_label": "SUS2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Removes the held SUS2 chord extension.",
    "short_label": "END SUS2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Opens the instrument mute screen, where white keys toggle lane mutes.",
    "short_label": "LANE MUTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1917",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1917"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Keeps the mute screen open after a short press, or closes it after a hold of at least 300 ms.",
    "short_label": "MUTES LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Opens the instrument mute screen, where white keys toggle lane mutes.",
    "short_label": "LANE MUTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1917",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1917"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Keeps the mute screen open after a short press, or closes it after a hold of at least 300 ms.",
    "short_label": "MUTES LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave up, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave up, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Closes this screen and stops its fill if one is running.",
    "short_label": "CLOSE LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1811",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1811"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1823",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1823"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the selected track to 4 full bars at its current speed, limited to 64 steps and applied to all grid lanes.",
    "short_label": "BARS 4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1798-1801",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1798-L1801"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1828-1834",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1834"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1869",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1869"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Enables live half-speed while held for sampler pad playing.",
    "short_label": "HALF-SPEED",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Disables this held live half-speed effect.",
    "short_label": "END SLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Enables live half-speed while held for sampler pad playing.",
    "short_label": "HALF-SPEED",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Disables this held live half-speed effect.",
    "short_label": "END SLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Enables live half-speed while held for sampler pad playing.",
    "short_label": "HALF-SPEED",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Disables this held live half-speed effect.",
    "short_label": "END SLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Enables live half-speed while held for sampler pad playing.",
    "short_label": "HALF-SPEED",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Disables this held live half-speed effect.",
    "short_label": "END SLOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1963",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1963"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Opens the instrument mute screen, where white keys toggle lane mutes.",
    "short_label": "LANE MUTES",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1917",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1917"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Keeps the mute screen open after a short press, or closes it after a hold of at least 300 ms.",
    "short_label": "MUTES LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave up, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave up, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave up, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave up, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Moves the black-key note-entry octave up, limited to two octaves either side of its starting octave.",
    "short_label": "NOTE OCT +",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1928-1931",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1928-L1931"
     }
    ]
   }
  ],
  "key_e5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 14 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 14 or cancels the queue if 14 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 14 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 14 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 14 or cancels the queue if 14 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 14 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 14 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 14 or cancels the queue if 14 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 14 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 14 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays E5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds E5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP E5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +16 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 14 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 14, recording its hit when REC and playback are on.",
    "short_label": "HIT 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 14 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 14 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 14 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 14 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 14 across its full grid or all notes at visible step 14 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 14 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 14 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 14 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 14 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 14 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 14 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 14, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 14, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 14, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 14, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 14, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 14, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 14, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies echo freeze to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "ECHO FREEZE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 14 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 14 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 14 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 14 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 14 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 14 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 14 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 14",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 14 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_f5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 15 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 15 or cancels the queue if 15 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 15 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 15 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 15 or cancels the queue if 15 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 15 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 15 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 15 or cancels the queue if 15 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 15 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 15 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays F5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds F5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP F5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +17 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 15 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 15, recording its hit when REC and playback are on.",
    "short_label": "HIT 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 15 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 15 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 15 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 15 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 15 across its full grid or all notes at visible step 15 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 15 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 15 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 15 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 15 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 15 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 15 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 15, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 15, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 15, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 15, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 15, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 15, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 15, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies kill low to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "KILL LOW",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 15 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 15 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 15 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 15 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 15 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 15 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 15 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 15",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 15 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "key_fs5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "Turns on the fill until this key is released.",
    "short_label": "LIVE FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1720-1721",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1720-L1721"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Turns off the fill started by this key.",
    "short_label": "END FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1759",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1759"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "Turns on the fill until this key is released.",
    "short_label": "LIVE FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1720-1721",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1720-L1721"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Turns off the fill started by this key.",
    "short_label": "END FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1759",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1759"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "Turns on the fill until this key is released.",
    "short_label": "LIVE FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1720-1721",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1720-L1721"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Turns off the fill started by this key.",
    "short_label": "END FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1759",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1759"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Turns on the fill until this key is released.",
    "short_label": "LIVE FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1720-1721",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1720-L1721"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "release",
    "action": "Turns off the fill started by this key.",
    "short_label": "END FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1759",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1759"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays F#5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds F#5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP F#5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +18 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Applies the SUS4 chord extension to chords played while held.",
    "short_label": "SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1124-1132",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1124-L1132"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1068-1075",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1068-L1075"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Removes the held SUS4 chord extension.",
    "short_label": "END SUS4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1770-1773",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1770-L1773"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1918",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1918"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1918",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1918"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1932",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1932"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1932",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1932"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1823",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1823"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Closes this screen and stops its fill if one is running.",
    "short_label": "CLOSE LAYER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1811",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1811"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1807",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1807"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1807-1808",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1807-L1808"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1828-1834",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1828-L1834"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Runs the fill while this key is held over the roll.",
    "short_label": "LIVE FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1868",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1868"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops the fill started by this key.",
    "short_label": "END FILL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1759",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1759"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Enables live stutter while held for sampler pad playing.",
    "short_label": "STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Disables this held live stutter effect.",
    "short_label": "END STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Enables live stutter while held for sampler pad playing.",
    "short_label": "STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Disables this held live stutter effect.",
    "short_label": "END STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Enables live stutter while held for sampler pad playing.",
    "short_label": "STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Disables this held live stutter effect.",
    "short_label": "END STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Enables live stutter while held for sampler pad playing.",
    "short_label": "STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1976-1981",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1976-L1981"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Disables this held live stutter effect.",
    "short_label": "END STUTTER",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1761-1763",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1761-L1763"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Asks to erase the selected take from flash while stopped with no undo, clearing its pads only in the current pattern; other saved patterns keep their references and may play different audio when a recording or import reuses that take number, while confirmation during playback rejects deletion.",
    "short_label": "DELETE TAKE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1960-1963",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1960-L1963"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2197-2201",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2197-L2201"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "690-709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L690-L709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_takes.c",
      "lines": "139-162",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_takes.c#L139-L162"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1918",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1918"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1932",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1932"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1932",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1932"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1932",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1932"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1932",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1932"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Starts the fill and opens its step screen.",
    "short_label": "FILL SCREEN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1932",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1932"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1227-1237",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1227-L1237"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Keeps the fill screen open after a short press, or closes it and stops the fill after a hold of at least 300 ms.",
    "short_label": "FILL LATCH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1774-1776",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1774-L1776"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1270-1276",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1270-L1276"
     }
    ]
   }
  ],
  "key_g5": [
   {
    "mode": "home",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 16 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 16 or cancels the queue if 16 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "hold",
    "action": "Keeps pattern 16 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 16 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 16 or cancels the queue if 16 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "hold",
    "action": "Keeps pattern 16 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "mix_console",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "press",
    "action": "With no other white key held, a stopped switch to a different pattern 16 saves dirty current and pending patterns to flash immediately without asking even with autosave off, then loads it without flash undo; during playback this key queues 16 or cancels the queue if 16 is current, while another held white key builds a chain instead.",
    "short_label": "PAT 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1701-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1701-L1716"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1084-1100",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1100"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "563-567",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L567"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "hold",
    "action": "Keeps pattern 16 available as the held start of a chain of up to eight pattern selections.",
    "short_label": "CHAIN 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1703-1716",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1703-L1716"
     }
    ]
   },
   {
    "mode": "home_controller",
    "gesture": "release",
    "action": "Releases this pattern key without cancelling the queued pattern or chain.",
    "short_label": "UNHOLD CHAIN",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "press",
    "action": "Has no assigned job here.",
    "short_label": "-",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2007-2011",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2007-L2011"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "press",
    "action": "Appends pattern 16 to the working song with one repeat unless its 64 entries are full, marking the song for later saving.",
    "short_label": "ADD 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1588-1594",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1588-L1594"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "2012-2015",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2012-L2015"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "28",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L28"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "press",
    "action": "Plays G5 plus the keyboard octave on the selected note machine, one octave lower for BB-303 or B-MINI, and records into the sequence while REC and playback are on with the note looper off.",
    "short_label": "G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1103-1105",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1103-L1105"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1134-1137",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1134-L1137"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "note_keyboard",
    "gesture": "release",
    "action": "Releases the note and finishes its recorded duration from the held time, clipping to the bar outside free recording.",
    "short_label": "NOTE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "press",
    "action": "Feeds G5 plus the keyboard octave to the selected note machine arpeggio, one octave lower on BB-303 or B-MINI.",
    "short_label": "ARP G5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1871-1876",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1871-L1876"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_types.h",
      "lines": "23-24",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_types.h#L23-L24"
     }
    ]
   },
   {
    "mode": "arp_keys",
    "gesture": "release",
    "action": "Releases this arpeggio input note.",
    "short_label": "ARP OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "press",
    "action": "Sets the project transpose to +19 semitones.",
    "short_label": "TRANSPOSE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1895-1900",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1895-L1900"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "press",
    "action": "Plays scale note 16 using the current root, scale and keyboard octave, one octave lower for BB-303 or B-MINI, recording into the sequence when REC and playback are on with the note looper off.",
    "short_label": "SCALE 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1119-1124",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1119-L1124"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "scale_keyboard",
    "gesture": "release",
    "action": "Releases the scale note and completes its recorded held duration.",
    "short_label": "SCALE OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "grid_keyboard",
    "gesture": "press",
    "action": "Selects and strikes instrument or pad 16, recording its hit when REC and playback are on.",
    "short_label": "HIT 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1107-1118",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1107-L1118"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1983-1985",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1983-L1985"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "press",
    "action": "If step 16 on the visible page is later than the held start, extends every note at the held start through this step.",
    "short_label": "LONG NOTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1159",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1159"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "press",
    "action": "Changes step 16 on this page: grids toggle accent or add an accented hit, while notes cycle accent, ghost and normal or add an accented last-pitch note.",
    "short_label": "ACCENT",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1326-1348",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1326-L1348"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "press",
    "action": "Changes step 16 on this page: grids cycle single, double, triple, quadruple and flam hits with an empty step becoming a double hit, while notes toggle ties only on existing notes.",
    "short_label": "REPEAT/TIE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1350-1377",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1350-L1377"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "press",
    "action": "Changes step 16 on this page: grids make a hit fill-only or delete a fill-only hit, while existing notes toggle between fill-only and normal playback.",
    "short_label": "FILL STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1294-1324",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1294-L1324"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "press",
    "action": "When stopped, clears instrument or pad 16 across its full grid or all notes at visible step 16 immediately without a question, with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "CLEAR EVENTS",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "hold",
    "action": "While playing, erases instrument or pad 16 as its playhead passes, or all notes at the note track playhead, without a question and with track undo available; flash changes with a later pattern save or autosave.",
    "short_label": "ERASE LIVE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1835-1855",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1835-L1855"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1124-1143",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1124-L1143"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "1157-1161",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
     }
    ]
   },
   {
    "mode": "erase",
    "gesture": "release",
    "action": "Stops this key’s live erase request.",
    "short_label": "END ERASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1785",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1785"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "press",
    "action": "Sets the length to position 16 on the current length page, applying it to every instrument or pad lane on grid tracks.",
    "short_label": "SET LENGTH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1796-1800",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1796-L1800"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1379-1386",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1379-L1386"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "press",
    "action": "Toggles the mute of instrument or pad 16 on the selected grid track.",
    "short_label": "LANE MUTE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1809-1816",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1809-L1816"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1662-1669",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1662-L1669"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "press",
    "action": "Selects instrument or pad 16 and starts repeating it at the current ROLL rate, writing repeats into the pattern when REC is on.",
    "short_label": "ROLL",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1858-1863",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1858-L1863"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1239-1244",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1239-L1244"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "release",
    "action": "Stops this lane’s held roll, allowing its configured tail.",
    "short_label": "ROLL END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1783",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1783"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1250-1255",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1250-L1255"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "press",
    "action": "Plays chord pad 16 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "press",
    "action": "Plays chord pad 16 from the chosen chord set with held extensions and current voicing, recording it when REC and playback are on.",
    "short_label": "CHORD 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1077-1101",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1077-L1101"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1869-1871",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1869-L1871"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1940-1945",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1940-L1945"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1047-1065",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1047-L1065"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "release",
    "action": "Releases this chord and completes its recorded held duration.",
    "short_label": "CHORD OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1724-1749",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1724-L1749"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press",
    "action": "When stopped, copies to pattern 16, asking before replacing a stored destination and saving both current and destination patterns to flash without pattern undo; the current slot cannot be its own target and oversized patterns are not written.",
    "short_label": "COPY TO 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs3",
    "action": "When stopped, copies track 1 to pattern 16, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T1",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_gs3",
    "action": "When stopped, copies track 2 to pattern 16, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T2",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_as3",
    "action": "When stopped, copies track 3 to pattern 16, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T3",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_cs4",
    "action": "When stopped, copies track 4 to pattern 16, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T4",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_ds4",
    "action": "When stopped, copies track 5 to pattern 16, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T5",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "copy_pattern",
    "gesture": "press_while_holding:key_fs4",
    "action": "When stopped, copies track 6 to pattern 16, asking before replacing stored destination data and saving the current pattern first, then the destination, with no pattern undo; an already-used BITTAL or BUNO-6 machine can block the copy and oversized patterns are not written.",
    "short_label": "COPY T6",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1877-1893",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1877-L1893"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "569-573",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_app.c",
      "lines": "587-620",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L587-L620"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "press",
    "action": "Applies kill high to the mix until release, quantized to the next sixteenth while playing.",
    "short_label": "KILL HIGH",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1824-1827",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1824-L1827"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "145-155",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L145-L155"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "293-303",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L293-L303"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_dsp.c",
      "lines": "345-402",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L345-L402"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "release",
    "action": "Releases this key’s punch-in effect if it is the most recently pressed effect key.",
    "short_label": "PUNCH OFF",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1750",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1750"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "press",
    "action": "Selects and plays pad 16 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "press",
    "action": "Selects and plays pad 16 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_sound",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "press",
    "action": "Selects and plays pad 16 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_env",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "press",
    "action": "Selects and plays pad 16 with its PLAY mode, recording its hit on the pad’s lane when REC and playback are on.",
    "short_label": "PAD 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1970-1971",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1970-L1971"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1453-1463",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1453-L1463"
     }
    ]
   },
   {
    "mode": "pads_loop",
    "gesture": "release",
    "action": "Releases the latest pad key: KEY and LOOP enter their release envelope, ONESHOT continues, and THRU finishes its marked section if still inside it.",
    "short_label": "PAD RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1764-1766",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1764-L1766"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "press",
    "action": "Previews sixteenth 16 of the selected valid take, continuing through the take while held.",
    "short_label": "PREVIEW 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1946-1952",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1946-L1952"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1465-1470",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1465-L1470"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "release",
    "action": "Releases the latest take preview so it finishes the selected part if still inside it, or enters its release envelope after passing that part.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "472-486",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L472-L486"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "press",
    "action": "After recording has ended and before the new take is saved, previews sixteenth 16 of that take, continuing while held; keys are silent during recording.",
    "short_label": "NEW PART 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1964-1969",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1964-L1969"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "release",
    "action": "Releases the latest new-take preview according to its section boundary.",
    "short_label": "PREVIEW END",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1767-1769",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1767-L1769"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_engines.c",
      "lines": "420-427",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing hit immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_pads",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "held_step_notes",
    "gesture": "release",
    "action": "If this is the held start key, ends step selection and removes prior events only after a short unchanged press; releasing the chosen end key leaves its extension intact.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1781-1787",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1781-L1787"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "press",
    "action": "Selects step 16 on the visible page, creating a missing note using the last played pitch immediately when inside the track length.",
    "short_label": "STEP 16",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1140-1180",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1140-L1180"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "long_press",
    "action": "Keeps step 16 selected after 300 ms so releasing it preserves an existing event.",
    "short_label": "HOLD STEP",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3511-3514",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3511-L3514"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_config.h",
      "lines": "59",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L59"
     }
    ]
   },
   {
    "mode": "seq_acid",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_mini",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_fm",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_bittal",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   },
   {
    "mode": "seq_buno",
    "gesture": "release",
    "action": "Deletes the step’s existing events only after a short press without an edit, then ends step selection.",
    "short_label": "STEP RELEASE",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "1182-1197",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1182-L1197"
     }
    ]
   }
  ],
  "switch_power": [
   {
    "mode": "any",
    "gesture": "press",
    "short_label": "RECOVERY",
    "action": "After four consecutive unsuccessful starts, the next power-on enters chip recovery instead of MIDI operation; four quick power cycles under ten seconds can cause this, and the computer recovery tool can reinstall firmware.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_boot.c",
      "lines": "23-27",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L23-L27"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_boot.c",
      "lines": "100-116",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L100-L116"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "hal/fm1/fm1_main.c",
      "lines": "901-904",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L901-L904"
     },
     {
      "kind": "doc",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "docs/en/INSTALL.md",
      "lines": "61-70",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/INSTALL.md#L61-L70"
     }
    ]
   }
  ]
 },
 "lights": {
  "button_fx": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   }
  ],
  "button_sel": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   }
  ],
  "button_env": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   }
  ],
  "button_lfo": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   }
  ],
  "button_edit": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   }
  ],
  "button_glo": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   }
  ],
  "button_home": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "short_label": "QUEUED",
    "action": "Shows a pending pattern or scene change away from the main console.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3757-3759",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3757-L3759"
     }
    ]
   }
  ],
  "button_save": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "short_label": "CLEAR ARMED",
    "action": "Warns that another SAVE within three seconds clears the pattern.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3760-3764",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3760-L3764"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "WRITING",
    "action": "Shows an active write job or its fade.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3656-3659",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3656-L3659"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "UNSAVED",
    "action": "Shows unsaved pattern, song, take or take-gain work on global views outside SAVE.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3649-3654",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3649-L3654"
     }
    ]
   }
  ],
  "button_arp": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   }
  ],
  "button_seq": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "HELD LAYER",
    "action": "Marks the button whose layer is held or latched.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3576-3590",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3576-L3590"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "short_label": "SONG REC",
    "action": "Shows console song recording is enabled.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3765-3767",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3765-L3767"
     }
    ]
   }
  ],
  "button_play_stop": [
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "BAR PULSE",
    "action": "Marks the first beat brightly, other beats at medium level and between-beat time dimly during playback.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3669-3674",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3669-L3674"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "CLOCK WAIT",
    "action": "Shows stopped transport waiting for external clock.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3669-3674",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3669-L3674"
     }
    ]
   }
  ],
  "button_rec": [
   {
    "mode": "any",
    "gesture": "blinking",
    "short_label": "RECORDING",
    "action": "Shows sampler capture, held recording or note-loop recording.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3676-3685",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3676-L3685"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "breathing",
    "short_label": "ARMED",
    "action": "Shows sampler or loop recording is armed.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3676-3685",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3676-L3685"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "REC ENABLED",
    "action": "Shows note REC or loop overdubbing.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3676-3685",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3676-L3685"
     }
    ]
   }
  ],
  "button_oct_down": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   }
  ],
  "button_oct_up": [
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "AVAILABLE",
    "action": "Shows the button is available, subject to the idle-light setting.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3541-3546",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3541-L3546"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3705-3709",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3705-L3709"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3770-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3770-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "CURRENT PAGE",
    "action": "Marks the current page or a shifted octave when the button represents it.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3748-3772",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3748-L3772"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "short_label": "CONFIRM",
    "action": "Marks OCT+ as confirmation for a question or channel copy.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3717-3718",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3717-L3718"
     }
    ]
   }
  ],
  "key_lights": [
   {
    "mode": "any",
    "gesture": "lit",
    "short_label": "HELD OR LIVE",
    "action": "Marks an assigned key while held or a sounding note or pad.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3953-3967",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3953-L3967"
     }
    ]
   },
   {
    "mode": "home",
    "gesture": "blinking",
    "short_label": "QUEUED SLOT",
    "action": "Marks queued patterns or scenes, with current choices bright and stored slots medium.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "742-765",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L742-L765"
     }
    ]
   },
   {
    "mode": "seq_drums",
    "gesture": "breathing",
    "short_label": "STEP LOCK",
    "action": "Marks parameter-locked active steps, while ordinary steps are bright and the playhead blinks.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3866-3888",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3866-L3888"
     }
    ]
   },
   {
    "mode": "seq_notes",
    "gesture": "dim",
    "short_label": "STEP STATE",
    "action": "Shows note starts bright, covered tails medium and the playhead blinking; held-step notes light their black keys.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3866-3902",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3866-L3902"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "dim",
    "short_label": "SCALE STATE",
    "action": "On a note-playing keyboard, shows roots medium, scale notes dim and other notes dark; scale lock places scale notes on whites and chord jobs on blacks.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3798-3825",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3798-L3825"
     }
    ]
   },
   {
    "mode": "pads_trim",
    "gesture": "lit",
    "short_label": "SELECTED PAD",
    "action": "Shows the selected pad bright, other usable pads medium and empty pads dark.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3904-3915",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3904-L3915"
     }
    ]
   },
   {
    "mode": "any",
    "gesture": "blinking",
    "short_label": "NEXT CHOICE",
    "action": "Marks the pending track or instrument while its selection box is open.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3937-3950",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3937-L3950"
     }
    ]
   },
   {
    "mode": "boot",
    "gesture": "flash",
    "short_label": "BOOT SCAN",
    "action": "Moves one light along the keyboard during startup.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3953-3960",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3953-L3960"
     }
    ]
   },
   {
    "mode": "length",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows the chosen length bright, earlier steps medium and later lengths dim, with the active speed or bar shortcut bright.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "870-884",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L870-L884"
     }
    ]
   },
   {
    "mode": "accent",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows accented steps bright and ordinary occupied steps medium, with the playhead blinking.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "775-809",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L775-L809"
     }
    ]
   },
   {
    "mode": "repeat",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows active ties or repeated hits bright, normal occupied steps medium and the playhead blinking.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "775-809",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L775-L809"
     }
    ]
   },
   {
    "mode": "fill_steps",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows fill-only steps bright, ordinary occupied steps medium, excluded steps dim and the playhead blinking.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "775-809",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L775-L809"
     }
    ]
   },
   {
    "mode": "punch",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows the active punch effect bright, available effects dim and unavailable memory-heavy effects dark, with unmuted tracks medium.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "911-920",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L911-L920"
     }
    ]
   },
   {
    "mode": "roll",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows active rolled instruments bright, the chosen rate and ramp bright and fill bright while active.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "930-942",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L930-L942"
     }
    ]
   },
   {
    "mode": "tone",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows the selected project transpose bright and zero transpose medium when unselected.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "969-979",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L969-L979"
     }
    ]
   },
   {
    "mode": "chord_layer",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows the last chord pad bright and active chord modifiers bright.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "837-846",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L837-L846"
     }
    ]
   },
   {
    "mode": "chords",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows the last chord pad bright and active chord modifiers bright.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "837-846",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L837-L846"
     }
    ]
   },
   {
    "mode": "lane_mute",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows usable unmuted lanes medium, muted lanes dim, empty lanes dark and the exit key breathing.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "813-829",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L813-L829"
     },
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "981-995",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L981-L995"
     }
    ]
   },
   {
    "mode": "takes",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows preview and kit actions available for user takes, with the delete action available only for valid user takes.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3917-3923",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3917-L3923"
     }
    ]
   },
   {
    "mode": "recorder",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Makes white preview keys available only after an unsaved take has finished recording.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3926-3928",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3926-L3928"
     }
    ]
   },
   {
    "mode": "scenes",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows the playing scene bright, queued scene blinking and stored scenes medium, with store destinations dim when empty.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3844-3849",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3844-L3849"
     }
    ]
   },
   {
    "mode": "song",
    "gesture": "lit",
    "short_label": "KEY STATE",
    "action": "Shows the selected song pattern bright, occupied pattern slots medium and empty slots dim.",
    "evidence": "read-in-source",
    "source": [
     {
      "kind": "source",
      "repo": "Erbubar23/bubba-machine",
      "ref": "v0.8.0-beta",
      "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
      "path": "core/bm_input.c",
      "lines": "3852-3859",
      "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3852-L3859"
     }
    ]
   }
  ]
 },
 "groups": {
  "key_lights": [
   "led_f3",
   "led_fs3",
   "led_g3",
   "led_gs3",
   "led_a3",
   "led_as3",
   "led_b3",
   "led_c4",
   "led_cs4",
   "led_d4",
   "led_ds4",
   "led_e4",
   "led_f4",
   "led_fs4",
   "led_g4",
   "led_gs4",
   "led_a4",
   "led_as4",
   "led_b4",
   "led_c5",
   "led_cs5",
   "led_d5",
   "led_ds5",
   "led_e5",
   "led_f5",
   "led_fs5",
   "led_g5"
  ]
 },
 "switching_note": {
  "kept_on_unit": "Bubba keeps sixteen six-track patterns, one song order with four scenes, system preferences, up to eight sampler takes, twelve uploaded sounds or DX7 banks, and one optional screen language pack. Takes and sounds share space; imported sound and audio bytes are separate from pattern references. Finished recordings save themselves when stopped, even with autosave off. Take gain, tempo and bar changes save after a short stopped pause. Pattern, song and system changes normally save after ten seconds since the last edit while stopped; autosave starts on. SAVE and quick save write the pattern and any pending pattern, not the system preferences. Turning autosave off does not save that preference by itself, and SAVE cannot save it. Choosing a different pattern while stopped saves dirty current and pending patterns before loading it, even with autosave off; it asks nothing. From the flash atlas: install through the official M-VAVE loader: Pinned package flash.bin is exactly 0x93000 bytes. The official loader is binary, not source: source comments and the English install guide say it writes this program image and preserves matching boot/device data. Its extra erase/VM behaviors cannot be established here. This program extent itself overlaps M-VAVE Open USER projects, preferences, sample header and first 24 KiB of sample space. The running previous firmware controls its initial staging writes; do not infer them from Bubba runtime. Replacing Open’s sample header leaves its whole sample bank unreadable. The same program writes can also leave PIGEON’s whole sample bank unreadable (accepted package and matching device boot bytes) [reported]. every application start, including safe mode: Every application startup writes a new begun/reset-reason record, including safe mode. A missing/different signature or full 510-entry log erases BF000 and writes a new signature first. Further stage/fault notes program bytes; after 10 s running or before entering chip mode a success byte is programmed. No question (header mismatch or full log erases; every start programs diagnostic bytes). before safe mode or normal application start: Before entering safe mode or normal play, read four bytes at E0000 and eight at E4F00; if any is not FF, erase every sector E0000-E4FFF. There is no ownership, loader validity or CRC check; unrelated occupied bytes elsewhere in the area alone do not trigger it. Read failure skips cleanup (one of the two update probes is not blank). normal application initialization: A readable Bubba settings record of the exact settings length with a generation other than 3 causes a reset of the pattern/song store, settings ring and take/sound area. Other formats with the wrong magic do not cause this reset (An older Bubba settings generation remains readable in the settings ring). first stopped autosave without compatible saved patterns: With no readable Bubba patterns or settings, startup creates a demo with autosave on and marks the pattern, song and settings dirty. After about 10 stopped seconds it writes pattern slot 0, song slot 1 and global ring 0 without an edit or save action. Surviving Bubba records can change the allocation; the general pool and ring rules then apply (no readable patterns; no valid log/global records; autosave enabled; stopped for more than 10 s since last edit). update request while Bubba runs: A received firmware-update request stages the official loader after validating the package and matching the device boot bytes: erases all five sectors, programs loader body, verifies received and readback CRCs and commits its header; after the host success reply it writes and read-checks the 112-byte resume record and resets. Any preparation error, including refusal before staging, and resume-record write/readback failure erases all five sectors. No device question or undo (received upgrade request, including refused or failed attempts). USB flash laboratory test: USB console laboratory command 4 erases E1000, writes and verifies a 256-byte test pattern for the requested number of iterations (zero means ten), then erases that sector again; no device question or undo. This command exists in the main music build (console lab command 4). SDK initialization or ordinary SDK operation: SDK VM is relocated here. SDK internals and actual write triggers are absent from this supplied source, so this row records an uncertain SDK-owned range rather than asserting untouched flash (unknown proprietary SDK behavior) [reported]. explicit chip-mode rescue restore: The shipped rescue tool first reads the whole flash twice and saves a matched raw backup. For restore, a full backup is truncated to the program prefix; mismatching boot bytes abort. After owner confirmation, only differing program sectors are erased and programmed; each is verified and final read requires all data above 93000 unchanged. It does not restore music even from a full backup (owner runs rescate.py restaurar with a compatible program or raw image and confirms). normal initialization with an older readable Bubba pattern format: A selected nonempty Bubba pattern with a format byte other than 8 resets the pattern/song store and settings ring. It keeps takes and sounds. A foreign magic mismatch alone does not trigger this reset (Older readable Bubba pattern data remains, without the older-settings reset taking precedence). What Bubba Machine (beta) writes over the previous firmware's data is in overwrites_previous; what the next firmware writes over Bubba Machine (beta)'s is in when_you_leave.",
  "cross_firmware": "See the switching advice in Before you switch firmware. Back up with the firmware that made your work before installing Bubba or starting it for the first time. Other firmwares can overwrite Bubba work at startup and during ordinary use without a save action. If Bubba finds no readable saved patterns, it starts a demo; with default autosave enabled, that demo, song and settings can be written after ten stopped idle seconds without an edit or SAVE press.\n\nInstalling Bubba replaces the incoming program area before its first start. See the switching advice in Before you switch firmware for the affected saved work. Back up M-VAVE Open projects and device samples in Open’s Workbench before installing Bubba. The proprietary official loader’s additional data writes are not established.\n\nAt its first start, including safe mode, Bubba erases the fault-log sector if it does not recognize its own log; later starts keep writing the log and recycle that sector when full, without asking. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise. Further startup-stage and success marks can also be written while music plays.\n\nA start that finds either update probe occupied erases the entire update area without checking whose data it is, including before safe mode. Starting a software update also erases it; even an update refused before staging can do this. No device question protects the prior contents. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise.\n\nThe first pattern or song save and every later one can overwrite foreign work as the save log moves through its space. That includes default demo autosaves, later autosaves, deliberate saves and copies, and choosing another pattern while stopped, which saves dirty patterns even with autosave off. Foreign records get no question. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise. Returning to X0X can reset its whole project when a required saved part is no longer readable; losing one required part can affect all of its project data. Other firmware loaders may ignore Bubba records or select an older surviving copy, depending on their own checks; no surviving-copy guarantee is made here.\n\nWith no readable Bubba preferences, its first preference save uses one sector and asks nothing. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise.\n\nLater preference autosaves rotate through three sectors and can replace further saved work without a question. SAVE does not save preferences; the autosave switch gates preference saving as well as pattern and song autosaves. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise. Returning to X0X can reset its whole project when a required saved part is no longer readable; losing one required part can affect all of its project data. Other firmware loaders may ignore Bubba records or select an older surviving copy, depending on their own checks; no surviving-copy guarantee is made here.\n\nNew recordings save themselves when stopped, even with autosave off; audio imports and sound or DX7-bank sends also erase the space they take without asking about foreign work. Allocation changes with the occupied space and the size of each send. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise.\n\nSending or removing a screen-language pack erases its whole language area while stopped, without a device question. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise.\n\nThe developer USB flash test repeatedly erases its test sector and erases it again at the end, without a device question. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise.\n\nBubba’s package moves the underlying system store into space used by other firmwares. The underlying system can write there, but its exact triggers, checks and erase behavior are unavailable, so preservation is unverified rather than promised. See the switching advice in Before you switch firmware for the affected saved work. Stock and Baud Girl locations and contents have weaker evidence. An overlap means some or all of the named work can be lost; an untouched older copy may remain, but returning to that firmware is not a recovery promise.\n\nWhen returning to the original firmware, its reader can reject Bubba’s replacement records and show empty slots or defaults, while replaced sample bytes can produce damaged audio. See the switching advice in Before you switch firmware for the affected saved work. An older surviving copy helps only if it still passes that firmware’s checks. These application-write paths do not establish loss of AMB-1’s eight pieces or OberVave’s thirty-two programs; the proprietary loader and system store leave their preservation unverified.\n\nWrites to shared storage can also remove other firmwares’ unfinished restores, pending updates and temporary bank transfers; keep the original files. Bubba’s pattern saves, Save As and copies, automatic saves of unsaved edits when changing patterns while stopped, song and scene saves, autosaves, automatic startup erases of incompatible saved formats and language-pack loads or removals can also replace ChoralRoot’s legacy sounds 1–32, VA patches, FM6 patches 1–32, CZ patches 1–32 and FM TONE patches, kept for returning to ChoralRoot 0.21 or older.",
  "back_up_first": "There is no musical backup or restore command in the control page. Keep the original audio, Vital, DX7 and Bubba sound files you sent, and record important music from the audio output before changing firmware. Before entering chip recovery, finish recording, stop playback, SAVE the current pattern, use SAVE SONG AND SCENES, and let a finished take finish saving. If system preferences matter, enable AUTOSAVE and allow more than ten seconds without edits while stopped for them to save; SAVE cannot write preferences and OFF cannot save itself. Check for save errors before proceeding. Chip recovery resets without saving and discards every remaining unsaved pattern, song, preference change and new take. Then hold both OCT buttons for over five seconds and run py -3 tools/fm1/rescate.py respaldo from an administrator console in the firmware project on Windows. That tool reads the whole flash twice and keeps a checked raw copy of saved data; it cannot capture unsaved memory. Its restore command writes only the program, even from a full copy, so it cannot restore saved music.",
  "lost": "Before version one, changing release can lose saved work. This release erases all saved patterns, song and preferences at its normal start if it recognizes a pattern from another format. Recognized older-generation preferences also cause all takes and uploaded sounds to be erased. It asks nothing and has no undo. A pattern-format change alone leaves compatible takes and sounds in place. Older B-MINI and BUNO-6 sound files can become unreadable and their space reusable; BITTAL sounds and DX7 banks have different compatibility checks. Going back to an earlier program does not recover work already erased. Older releases were not audited here. From the flash atlas: No other firmware reads Bubba Machine (beta)'s data, and Bubba Machine (beta) reads none of theirs.",
  "source": [
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_app.c",
    "lines": "563-573",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L563-L573"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_app.c",
    "lines": "632-657",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L657"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_app.c",
    "lines": "661-697",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L661-L697"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_app.c",
    "lines": "702-718",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "core/bm_app.c",
    "lines": "848-882",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L848-L882"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "core/bm_app.c",
    "lines": "1150-1169",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1150-L1169"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_store.c",
    "lines": "56-83",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_store.c#L56-L83"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_store.c",
    "lines": "104-136",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_store.c#L104-L136"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_store.c",
    "lines": "139-179",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_store.c#L139-L179"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "hal/fm1/fm1_boot.c",
    "lines": "81-137",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L81-L137"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "hal/fm1/fm1_update.c",
    "lines": "263-335",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_update.c#L263-L335"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "hal/fm1/fm1_hw.h",
    "lines": "45-60",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_hw.h#L45-L60"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "tools/fm1/rescate.py",
    "lines": "234-283",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/tools/fm1/rescate.py#L234-L283"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "core/bm_snap.c",
    "lines": "16-34",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_snap.c#L16-L34"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "core/bm_input.c",
    "lines": "3649-3653",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3649-L3653"
   },
   {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "path": "docs/en/INSTALL.md",
    "lines": "7",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/INSTALL.md#L7"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_app.c",
    "lines": "1084-1099",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1084-L1099"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "hal/fm1/fm1_boot.c",
    "lines": "60-69",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L60-L69"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "hal/fm1/fm1_main.c",
    "lines": "843-850",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L843-L850"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "tools/build.py",
    "lines": "163-166",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/tools/build.py#L163-L166"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "tools/fm1/fwsc.py",
    "lines": "278-291",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/tools/fm1/fwsc.py#L278-L291"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_store.c",
    "lines": "104-135",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_store.c#L104-L135"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_store.c",
    "lines": "158-165",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_store.c#L158-L165"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_takes.c",
    "lines": "139-162",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_takes.c#L139-L162"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_snap.c",
    "lines": "112-137",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_snap.c#L112-L137"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_app.c",
    "lines": "406-432",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L406-L432"
   },
   {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "hal/fm1/README_PORT.md",
    "lines": "38-55",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/README_PORT.md#L38-L55"
   },
   {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_config.h",
    "lines": "97-98",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L97-L98"
   }
  ],
  "foreign_warning_coverage": [
   {
    "trigger_id": "boot_log_first_and_later_starts",
    "covered_read_rows": [
     0,
     3,
     4,
     16,
     27,
     37,
     52,
     72,
     90,
     125,
     127,
     135,
     158,
     170,
     194,
     200,
     211,
     262
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "felucca.sample_usr2",
     "sloop.usr2",
     "x0x.break_slot_2",
     "jiant.song5",
     "melodee.bank_project_d",
     "choralroot.sound_pool",
     "ghoulbox.sample_usr2",
     "mvaveopen.samples",
     "hortator.sample_usr2",
     "polly.qy70_bank",
     "skiff.sample_usr2",
     "sloopdx.dxbank8_high",
     "zp12.expanded_sample_audio",
     "rainbow.sample_usr2",
     "maku.sample_usr2"
    ]
   },
   {
    "trigger_id": "pattern_and_song_writes",
    "covered_read_rows": [
     0,
     3,
     4,
     5,
     6,
     7,
     8,
     11,
     15,
     16,
     18,
     19,
     20,
     21,
     24,
     26,
     27,
     30,
     31,
     32,
     33,
     36,
     37,
     39,
     40,
     41,
     42,
     45,
     46,
     49,
     50,
     51,
     52,
     58,
     59,
     60,
     67,
     69,
     70,
     71,
     72,
     74,
     77,
     79,
     80,
     81,
     82,
     83,
     84,
     85,
     86,
     87,
     88,
     89,
     90,
     103,
     104,
     105,
     106,
     107,
     108,
     110,
     111,
     112,
     113,
     114,
     115,
     116,
     117,
     120,
     124,
     125,
     127,
     128,
     129,
     130,
     131,
     132,
     133,
     134,
     135,
     141,
     142,
     143,
     144,
     145,
     146,
     147,
     148,
     149,
     150,
     151,
     152,
     153,
     154,
     155,
     156,
     157,
     158,
     160,
     161,
     162,
     163,
     166,
     169,
     170,
     172,
     173,
     174,
     175,
     178,
     179,
     180,
     181,
     182,
     183,
     184,
     185,
     186,
     187,
     188,
     189,
     190,
     191,
     192,
     193,
     194,
     200,
     202,
     203,
     204,
     205,
     208,
     210,
     211,
     214,
     219,
     220,
     221,
     222,
     232,
     233,
     234,
     235,
     236,
     237,
     238,
     239,
     240,
     241,
     242,
     243,
     244,
     245,
     253,
     254,
     255,
     256,
     257,
     260,
     261,
     262
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "felucca.project_a",
     "felucca.project_b",
     "felucca.project_c",
     "felucca.project_d",
     "felucca.fm6_user_patches",
     "felucca.sample_usr1",
     "felucca.sample_usr2",
     "sloop.section_a",
     "sloop.section_b",
     "sloop.section_c",
     "sloop.section_d",
     "sloop.working_project",
     "sloop.usr1",
     "sloop.usr2",
     "x0x.sound",
     "x0x.stream_part1",
     "x0x.stream_part2",
     "x0x.stream_part3",
     "x0x.break_slot_1",
     "x0x.break_slot_2",
     "jiant.song1_section_a",
     "jiant.song1_section_b",
     "jiant.song1_section_c",
     "jiant.song1_section_d",
     "jiant.fm6_user_patches",
     "jiant.retired_fm6_bank",
     "jiant.song2",
     "jiant.song3",
     "jiant.song4",
     "jiant.song5",
     "melodee.retired_project0",
     "melodee.retired_project1",
     "melodee.retired_project2",
     "melodee.native_fm6_f033_f048",
     "melodee.bank_project_a",
     "melodee.bank_project_b",
     "melodee.bank_project_c",
     "melodee.bank_project_d",
     "melodee.prophet_banks",
     "melodee.shared_presets_u379_u384",
     "choralroot.session",
     "choralroot.favourites",
     "choralroot.fm6_bank",
     "choralroot.cz_bank_a",
     "choralroot.cz_bank_b",
     "choralroot.cz_bank_c",
     "choralroot.cz_bank_d",
     "choralroot.cz_bank_e",
     "choralroot.cz_bank_f",
     "choralroot.cz_bank_g",
     "choralroot.cz_bank_h",
     "choralroot.sound_pool",
     "choralroot.legacy_va",
     "choralroot.legacy_fm6_1",
     "choralroot.legacy_fm6_2",
     "choralroot.legacy_cz_1",
     "choralroot.legacy_cz_2",
     "choralroot.legacy_quad",
     "choralroot.boot_session_erase",
     "choralroot.boot_favourites_erase",
     "choralroot.boot_pool_first_sector",
     "choralroot.boot_pool_migration",
     "ghoulbox.project_a",
     "ghoulbox.project_b",
     "ghoulbox.project_c",
     "ghoulbox.project_d",
     "ghoulbox.fm6_user_patches",
     "ghoulbox.sample_usr1",
     "ghoulbox.sample_usr2",
     "mvaveopen.samples",
     "mvaveopen.factory_sample_write",
     "fm106.user_presets",
     "hortator.project_a",
     "hortator.project_b",
     "hortator.project_c",
     "hortator.project_d",
     "hortator.sample_usr1",
     "hortator.sample_usr2",
     "polly.songs",
     "polly.slot_01",
     "polly.slot_02",
     "polly.slot_03",
     "polly.slot_04",
     "polly.slot_05",
     "polly.slot_06",
     "polly.slot_07",
     "polly.slot_08",
     "polly.slot_09",
     "polly.slot_10",
     "polly.slot_11",
     "polly.slot_12",
     "polly.slot_13",
     "polly.slot_14",
     "polly.slot_15",
     "polly.slot_16",
     "polly.qy70_bank",
     "skiff.project_a",
     "skiff.project_b",
     "skiff.project_c",
     "skiff.project_d",
     "skiff.fm6_user_patches",
     "skiff.sample_usr1",
     "skiff.sample_usr2",
     "sloopdx.project_a",
     "sloopdx.project_b",
     "sloopdx.project_c",
     "sloopdx.project_d",
     "sloopdx.autosave",
     "sloopdx.dxbank1_low",
     "sloopdx.dxbank1_high",
     "sloopdx.dxbank2_low",
     "sloopdx.dxbank2_high",
     "sloopdx.dxbank3_low",
     "sloopdx.dxbank3_high",
     "sloopdx.dxbank4_low",
     "sloopdx.dxbank4_high",
     "sloopdx.dxbank5_low",
     "sloopdx.dxbank5_high",
     "sloopdx.dxbank6_low",
     "sloopdx.dxbank6_high",
     "sloopdx.dxbank7_low",
     "sloopdx.dxbank7_high",
     "sloopdx.dxbank8_low",
     "sloopdx.dxbank8_high",
     "zp12.expanded_sample_audio",
     "rainbow.project_a",
     "rainbow.project_b",
     "rainbow.project_c",
     "rainbow.project_d",
     "rainbow.fm6_user_patches",
     "rainbow.sample_usr1",
     "rainbow.sample_usr2",
     "rainbow.retired_fm6_bank",
     "duell.multis_1",
     "duell.multis_2",
     "duell.multis_3",
     "duell.multis_4",
     "duell.patch_chunk_5",
     "duell.patch_chunk_6",
     "duell.patch_chunk_7",
     "duell.patch_chunk_8",
     "duell.patch_chunk_9",
     "duell.patch_chunk_10",
     "duell.patch_chunk_11",
     "duell.patch_chunk_12",
     "duell.patch_chunk_13",
     "duell.patch_chunk_14",
     "duell.patch_chunk_15",
     "duell.wavetable_1",
     "duell.wavetable_2",
     "duell.wavetable_3",
     "maku.fm6_user_patches",
     "maku.project_a",
     "maku.project_b",
     "maku.project_c",
     "maku.project_d",
     "maku.retired_fm6_bank",
     "maku.sample_usr1",
     "maku.sample_usr2"
    ]
   },
   {
    "trigger_id": "first_preferences_write",
    "covered_read_rows": [
     0,
     3,
     4,
     9,
     22,
     35,
     43,
     61,
     75,
     78,
     101,
     118,
     127,
     140,
     164,
     176,
     206,
     230,
     249,
     258,
     265
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "felucca.user_presets_1",
     "sloop.user_presets_1",
     "x0x.calibration",
     "jiant.user_presets_1",
     "melodee.user_presets_u01_u16",
     "fomni.calibration",
     "amb.calibration",
     "choralroot.legacy_user_1",
     "ghoulbox.user_presets_1",
     "mvaveopen.samples",
     "polly.calibration",
     "skiff.user_presets_1",
     "sloopdx.user_presets_1",
     "rainbow.user_presets_1",
     "duell.patch_chunk_3",
     "fimba.calibration",
     "maku.user_presets_1",
     "fart.calibration"
    ]
   },
   {
    "trigger_id": "later_preferences_writes",
    "covered_read_rows": [
     0,
     3,
     4,
     9,
     10,
     22,
     23,
     34,
     35,
     43,
     44,
     61,
     62,
     75,
     78,
     101,
     102,
     118,
     119,
     127,
     140,
     158,
     164,
     165,
     176,
     177,
     206,
     207,
     230,
     231,
     249,
     258,
     259,
     265
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "felucca.user_presets_1",
     "felucca.user_presets_2",
     "sloop.user_presets_1",
     "sloop.user_presets_2",
     "x0x.stream_part4",
     "x0x.calibration",
     "jiant.user_presets_1",
     "jiant.user_presets_2",
     "melodee.user_presets_u01_u16",
     "melodee.user_presets_u17_u32",
     "fomni.calibration",
     "amb.calibration",
     "choralroot.legacy_user_1",
     "choralroot.legacy_user_2",
     "ghoulbox.user_presets_1",
     "ghoulbox.user_presets_2",
     "mvaveopen.samples",
     "polly.calibration",
     "polly.qy70_bank",
     "skiff.user_presets_1",
     "skiff.user_presets_2",
     "sloopdx.user_presets_1",
     "sloopdx.user_presets_2",
     "rainbow.user_presets_1",
     "rainbow.user_presets_2",
     "duell.patch_chunk_3",
     "duell.patch_chunk_4",
     "fimba.calibration",
     "maku.user_presets_1",
     "maku.user_presets_2",
     "fart.calibration"
    ]
   },
   {
    "trigger_id": "takes_record_import_sound_dx7_writes",
    "covered_read_rows": [
     0,
     3,
     4,
     16,
     17,
     27,
     28,
     37,
     38,
     48,
     53,
     54,
     55,
     65,
     72,
     73,
     90,
     91,
     92,
     93,
     94,
     95,
     96,
     97,
     98,
     99,
     125,
     126,
     127,
     135,
     136,
     158,
     170,
     171,
     195,
     196,
     197,
     198,
     200,
     211,
     212,
     216,
     217,
     223,
     224,
     225,
     226,
     227,
     228,
     229,
     262,
     263
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "felucca.sample_usr2",
     "felucca.sample_usr3",
     "sloop.usr2",
     "sloop.usr3",
     "x0x.break_slot_2",
     "x0x.break_slot_3",
     "jiant.song_index",
     "jiant.song6",
     "jiant.song7",
     "jiant.song8",
     "melodee.native_fm6_f001_f016",
     "melodee.bank_project_d",
     "melodee.cz_banks",
     "choralroot.sound_pool",
     "choralroot.loop_1",
     "choralroot.loop_2",
     "choralroot.loop_3",
     "choralroot.loop_4",
     "choralroot.loop_5",
     "choralroot.loop_6",
     "choralroot.loop_7",
     "choralroot.loop_8",
     "choralroot.loop_9",
     "ghoulbox.sample_usr2",
     "ghoulbox.sample_usr3",
     "mvaveopen.samples",
     "hortator.sample_usr2",
     "hortator.sample_usr3",
     "polly.qy70_bank",
     "skiff.sample_usr2",
     "skiff.sample_usr3",
     "sloopdx.selected_bank",
     "sloopdx.my_kit",
     "zp12.store",
     "zp12.sample_directory",
     "zp12.expanded_sample_audio",
     "rainbow.sample_usr2",
     "rainbow.sample_usr3",
     "duell.patterns_1",
     "duell.patterns_2",
     "duell.multis_5",
     "duell.multis_6",
     "duell.multis_7",
     "duell.multis_8",
     "duell.patch_chunk_0",
     "duell.patch_chunk_1",
     "duell.patch_chunk_2",
     "maku.sample_usr2",
     "maku.sample_usr3"
    ]
   },
   {
    "trigger_id": "language_upload_or_removal",
    "covered_read_rows": [
     0,
     3,
     4,
     9,
     17,
     22,
     28,
     35,
     38,
     43,
     48,
     61,
     65,
     66,
     75,
     78,
     99,
     100,
     101,
     118,
     126,
     127,
     136,
     140,
     158,
     164,
     171,
     176,
     198,
     199,
     206,
     212,
     217,
     218,
     230,
     249,
     258,
     263,
     265
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "felucca.user_presets_1",
     "felucca.sample_usr3",
     "sloop.user_presets_1",
     "sloop.usr3",
     "x0x.calibration",
     "x0x.break_slot_3",
     "jiant.user_presets_1",
     "jiant.song_index",
     "melodee.user_presets_u01_u16",
     "melodee.native_fm6_f001_f016",
     "melodee.native_fm6_f017_f032",
     "fomni.calibration",
     "amb.calibration",
     "choralroot.loop_9",
     "choralroot.loop_10",
     "choralroot.legacy_user_1",
     "ghoulbox.user_presets_1",
     "ghoulbox.sample_usr3",
     "mvaveopen.samples",
     "hortator.sample_usr3",
     "polly.calibration",
     "polly.qy70_bank",
     "skiff.user_presets_1",
     "skiff.sample_usr3",
     "sloopdx.user_presets_1",
     "zp12.sample_directory",
     "zp12.sample_audio",
     "rainbow.user_presets_1",
     "rainbow.sample_usr3",
     "duell.patterns_2",
     "duell.patterns_3",
     "duell.patch_chunk_3",
     "fimba.calibration",
     "maku.user_presets_1",
     "maku.sample_usr3",
     "fart.calibration"
    ]
   },
   {
    "trigger_id": "update_cleanup_or_attempt",
    "covered_read_rows": [
     0,
     3,
     4,
     76,
     109,
     127,
     137,
     138,
     139,
     159,
     201,
     213,
     248,
     250,
     251,
     264,
     266,
     267
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "x0x.restore_journal",
     "choralroot.update_staging",
     "mvaveopen.samples",
     "hortator.update_staging",
     "obervave.update_staging",
     "obervave.update_record",
     "polly.restore_journal",
     "zp12.update_staging",
     "rainbow.update_staging",
     "duell.update_staging",
     "fimba.update_staging",
     "fimba.update_record",
     "maku.update_staging",
     "fart.update_staging",
     "fart.update_record"
    ]
   },
   {
    "trigger_id": "console_flash_test",
    "covered_read_rows": [
     0,
     3,
     4,
     76,
     109,
     127,
     137,
     138,
     159,
     201,
     213,
     248,
     250,
     264,
     266
    ],
    "covered_writer_objects": [
     "stock.vm",
     "baudgirl.presets",
     "baudgirl.patterns",
     "x0x.restore_journal",
     "choralroot.update_staging",
     "mvaveopen.samples",
     "hortator.update_staging",
     "obervave.update_staging",
     "polly.restore_journal",
     "zp12.update_staging",
     "rainbow.update_staging",
     "duell.update_staging",
     "fimba.update_staging",
     "maku.update_staging",
     "fart.update_staging"
    ]
   },
   {
    "trigger_id": "proprietary_system_store_possible_writes",
    "covered_read_rows": [
     0,
     1,
     2,
     3,
     4,
     12,
     13,
     14,
     25,
     29,
     47,
     56,
     57,
     63,
     64,
     68,
     69,
     121,
     122,
     123,
     127,
     158,
     167,
     168,
     199,
     209,
     215,
     246,
     247,
     252
    ],
    "covered_writer_objects": [
     "stock.vm",
     "stock.btif",
     "stock.usr",
     "baudgirl.presets",
     "baudgirl.patterns",
     "felucca.autosave",
     "felucca.voice_bank_staging",
     "felucca.voice_bank",
     "sloop.fm6_bank",
     "sloop.usr4",
     "jiant.autosave",
     "jiant.voice_bank",
     "jiant.voice_bank_staging",
     "melodee.user_presets_u33_u48",
     "melodee.user_presets_u49_u64",
     "melodee.native_fm6_f049_f064",
     "melodee.bank_project_a",
     "ghoulbox.autosave",
     "ghoulbox.voice_bank_staging",
     "ghoulbox.voice_bank",
     "mvaveopen.samples",
     "polly.qy70_bank",
     "skiff.autosave",
     "skiff.pattern_pool",
     "zp12.sample_audio",
     "rainbow.autosave",
     "duell.autosave",
     "duell.voice_bank_staging",
     "duell.voice_bank",
     "maku.likes"
    ]
   },
   {
    "trigger_id": "install_program_image",
    "covered_read_rows": [
     127,
     128
    ],
    "covered_writer_objects": [
     "mvaveopen.project_01",
     "mvaveopen.project_02",
     "mvaveopen.project_03",
     "mvaveopen.project_04",
     "mvaveopen.project_05",
     "mvaveopen.project_06",
     "mvaveopen.project_07",
     "mvaveopen.project_08",
     "mvaveopen.project_09",
     "mvaveopen.project_10",
     "mvaveopen.project_11",
     "mvaveopen.project_12",
     "mvaveopen.project_13",
     "mvaveopen.project_14",
     "mvaveopen.project_15",
     "mvaveopen.project_16",
     "mvaveopen.settings",
     "mvaveopen.staging",
     "mvaveopen.samples",
     "mvaveopen.factory_sample_write"
    ]
   }
  ],
  "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": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "project slot A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project slot B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project slot C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project slot D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 patches of the FM6 user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its preset bank]",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking) [uses its preset bank]",
        "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": "user 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": "user 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 presets 1-16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user presets 17-32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user 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": "the autosave (the music as you left it)",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 voice bank B1-B32",
      "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: project slot A; project slot B; project slot C; project slot D; FM6 patches of the FM6 user presets; user sample slot USR1; user sample slot USR2; user presets 1-16; user presets 17-32. At risk by itself, under a condition: user sample slot USR3. At risk when you act: the autosave (the music as you left it); FM6 voice bank B1-B32.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "sloop",
    "name": "SLOOP",
    "flags": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "song section A (a whole project)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section B (a whole project)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section C (a whole project)",
      "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": "song section D (a whole project)",
      "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": "the music in progress (autosave)",
      "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": "user 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": "user 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 older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17-U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user 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 patch 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": "user 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: song section A (a whole project); song section B (a whole project); song section C (a whole project); song section D (a whole project); the music in progress (autosave); user sample slot USR1; user sample slot USR2; user sounds U01-U16; user sounds U17-U32. At risk by itself, under a condition: user sample slot USR3. At risk when you act: FM6 patch bank B1-B27; user sample slot USR4.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "x0x",
    "name": "X0X",
    "flags": "ACS",
    "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 at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "break loops slot 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "break loops slot 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "X0X button calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "break loops slot 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion); break loops slot 1; break loops slot 2; X0X button calibration. At risk by itself, under a condition: break loops slot 3.",
    "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": "song 1 section A (a whole project)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song 1 section B (a whole project)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song 1 section C (a whole project)",
      "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": "song 1 section D (a whole project)",
      "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": "FM6 patches for the FM6 user sounds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its preset bank]",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking) [uses its preset bank]",
        "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": "song 2: four sections (whole projects)",
      "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": "song 3: four sections (whole projects)",
      "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": "song 4: four sections (whole projects)",
      "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": "song 5: four sections (whole projects)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "partly lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "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 older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17-U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song 6: four sections (whole projects)",
      "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 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": "song 7: four sections (whole projects)",
      "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 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": "song 8: four sections (whole projects)",
      "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 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": "which song is current, every song's rows and scenes",
      "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": "lost"
       },
       {
        "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": "music in progress (RESTORE LAST)",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 voice bank B1-B32",
      "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: 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); FM6 patches for the FM6 user sounds; song 2: four sections (whole projects); song 3: four sections (whole projects); song 4: four sections (whole projects); song 5: four sections (whole projects); user sounds U01-U16; user sounds U17-U32. At risk by itself, under a condition: 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. At risk when you act: 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 U289-U378",
      "effect": "partly lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "partly lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "partly 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": "partly 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": "partly lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "partly lost"
       }
      ]
     },
     {
      "object": "shared user presets U379-U384",
      "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": "shared user presets U109-U126",
      "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": "project A: patterns, song, sounds, motion, recordings",
      "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"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project B: patterns, song, sounds, motion, recordings",
      "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": "project C: patterns, song, sounds, motion, recordings",
      "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": "project D: patterns, song, sounds, motion, recordings",
      "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",
        "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"
       },
       {
        "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": "shared user presets U001-U018",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U019-U036",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U145-U288",
      "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 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": "shared user presets U073-U090",
      "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": "lost"
       },
       {
        "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": "shared user presets U091-U108",
      "effect": "lost",
      "ways": [
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U037-U054",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U055-U072",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared user presets U127-U144",
      "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: shared user presets U289-U378 (partly lost); shared user presets U379-U384; shared user presets U109-U126; 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 U001-U018; shared user presets U019-U036. At risk by itself, under a condition: shared user presets U145-U288; shared user presets U073-U090. At risk when you act: shared user presets U091-U108; 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 button calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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 panel calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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 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": "CZ-1 bank A (16 tones)",
      "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": "CZ-1 bank B (16 tones)",
      "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": "CZ-1 bank C (16 tones)",
      "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": "CZ-1 bank D (16 tones)",
      "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": "CZ-1 bank E (16 tones)",
      "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": "CZ-1 bank F (16 tones)",
      "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": "CZ-1 bank G (16 tones)",
      "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": "CZ-1 bank H (16 tones)",
      "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": "last session saved with a global save",
      "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": "favourite marks, chord/bass type and filter",
      "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": "128 saved sounds with their complete engine patches",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "some or all lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "recorded loop 1",
      "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 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": "recorded loop 2",
      "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 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": "recorded loop 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you 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": "recorded loop 4",
      "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 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": "recorded loop 5",
      "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 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": "recorded loop 6",
      "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 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": "recorded loop 7",
      "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 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": "recorded loop 8",
      "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 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": "recorded loop 9",
      "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": "lost"
       },
       {
        "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": "recorded loop 10",
      "effect": "lost",
      "ways": [
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 32 imported DX7 voices; 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. At risk by itself, under a condition: 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. At risk when you act: 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": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 patches for user sounds",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its preset bank]",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking) [uses its preset bank]",
        "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": "user 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": "user 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 1–16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds 17–32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user 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": "music in progress (RESTORE LAST)",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 voice bank B1–B32",
      "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: project A; project B; project C; project D; FM6 patches for user sounds; user sample slot USR1; user sample slot USR2; user sounds 1–16; user sounds 17–32. At risk by itself, under a condition: user sample slot USR3. At risk when you act: 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": "mvaveopen",
    "name": "M-VAVE FM-1 Open",
    "flags": "ACS?",
    "weakest_grade": "reported",
    "at_risk": [
     {
      "object": "Open shared sample audio",
      "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 if leftover data is found in the checked spots where firmware updates are prepared",
        "effect": "lost"
       },
       {
        "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": "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)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you run the storage test from the USB console (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": "lost"
       },
       {
        "way": "when you start or try a firmware update while Bubba Machine is running",
        "effect": "lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 1",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 2",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 3",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 4",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 5",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 6",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 7",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 8",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 9",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 10",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 11",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 12",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 13",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 14",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 15",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open USER project 16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Open device preferences",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Installing the program writes over all sixteen Open USER projects, preferences, the information needed to read its sample bank and the start of its sample storage before Bubba first runs. Back up with Open before installing."
    ],
    "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. Installing the program writes over all sixteen Open USER projects, preferences, the information needed to read its sample bank and the start of its sample storage before Bubba first runs. Back up with Open before installing.",
    "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": "older stored user bank, if present (Beta4 does not store new edits)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user samples 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": "user samples 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 samples 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: project A; project B; project C; project D; user samples USR1; user samples USR2. At risk by itself, under a condition: user samples USR3.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "obervave",
    "name": "OberVave",
    "flags": "-",
    "weakest_grade": null,
    "at_risk": [],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "Bubba Machine is a beta. Its program uses separate storage from these saved settings. We could not check whether the supplied official installer erases more data. Back up the settings before switching."
    ],
    "owner_text": "Bubba Machine is a beta. Its program uses separate storage from these saved settings. We could not check whether the supplied official installer erases more data. Back up the settings before switching.",
    "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": "All four Polly songs",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Polly shared memory 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "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": "Polly shared memory 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "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": "Polly shared memory 3",
      "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": "Polly shared memory 4",
      "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": "Polly shared memory 5",
      "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": "Polly shared memory 6",
      "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": "Polly shared memory 7",
      "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": "Polly shared memory 8",
      "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": "Polly shared memory 9",
      "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": "Polly shared memory 10",
      "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": "Polly shared memory 11",
      "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": "Polly shared memory 12",
      "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": "Polly shared memory 13",
      "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": "Polly shared memory 14",
      "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": "Polly shared memory 15",
      "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": "Polly shared memory 16",
      "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": "Optional QY70 style bank",
      "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": "damaged (part written over)"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you save song and scenes (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": "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)"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "Polly button and encoder calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: All four Polly songs; Polly shared memory 1; Polly shared memory 2; Polly shared memory 3; Polly shared memory 4; 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": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public) [uses its shared pattern pool]",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public) [uses its shared pattern pool]",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public) [uses its shared pattern pool]",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public) [uses its shared pattern pool]",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "user sounds’ own FM6 patches",
      "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": "user sample 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": "user sample 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 sound bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "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 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 copy to another pattern (without asking) [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 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 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 save song and scenes (without asking) [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"
       }
      ]
     },
     {
      "object": "user sound bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "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 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 copy to another pattern (without asking) [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 save a pattern or Save As (without asking) [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 save song and scenes (without asking) [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"
       }
      ]
     },
     {
      "object": "user sample 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": "last session",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "shared 64-pattern pool",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "some or all lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: project A; project B; project C; project D; user sounds’ own FM6 patches; user sample USR1; user sample USR2; user sound bank 1; user sound bank 2. At risk by itself, under a condition: user sample USR3. At risk when you act: last session; shared 64-pattern pool (some or all lost).",
    "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": "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 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": "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) [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 take from the control page or with the computer 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"
       }
      ]
     },
     {
      "object": "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 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": "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) [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 take from the control page or with the computer 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"
       }
      ]
     },
     {
      "object": "section C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "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 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": "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) [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 take from the control page or with the computer 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"
       }
      ],
      "first_way_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 at first start [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": "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 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": "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) [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 take from the control page or with the computer 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"
       }
      ],
      "first_way_effect": "sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay"
     },
     {
      "object": "working loop",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "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 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": "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) [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 take from the control page or with the computer 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"
       }
      ],
      "first_way_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": "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": "DX7 bank 1 voices 17–32",
      "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": "DX7 bank 2 voices 1–16",
      "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": "DX7 bank 2 voices 17–32",
      "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": "DX7 bank 3 voices 1–16",
      "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": "DX7 bank 3 voices 17–32",
      "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": "DX7 bank 4 voices 1–16",
      "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": "DX7 bank 4 voices 17–32",
      "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": "DX7 bank 5 voices 1–16",
      "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": "DX7 bank 5 voices 17–32",
      "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": "DX7 bank 6 voices 1–16",
      "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": "DX7 bank 6 voices 17–32",
      "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": "DX7 bank 7 voices 1–16",
      "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": "DX7 bank 7 voices 17–32",
      "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": "DX7 bank 8 voices 1–16",
      "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": "DX7 bank 8 voices 17–32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user presets 1–16",
      "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 saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       },
       {
        "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 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 copy to another pattern (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 load or remove a screen language pack (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (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 save song and scenes (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 a sound or DX7 bank from the control page or with the computer 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 upload a take from the control page or with the computer 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"
       }
      ]
     },
     {
      "object": "user presets 17–32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [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": "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 saved DX7 voices]",
        "effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
       },
       {
        "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 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 copy to another pattern (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 save a pattern or Save As (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 save song and scenes (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 a sound or DX7 bank from the control page or with the computer 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 upload a take from the control page or with the computer 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"
       }
      ],
      "first_way_effect": "sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay"
     },
     {
      "object": "selected DX7 bank",
      "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 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": "MY KIT",
      "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 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: section A; section B; section C (sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay; other writes can also erase it); section D (sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay; other writes can also erase it); working loop (sounds can change if their saved DX7 voices, chosen bank or drum kit are replaced; saved notes and controls stay; other writes can also erase it); 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; user presets 1–16; user presets 17–32 (sounds can change if their saved DX7 voices or chosen bank are replaced; saved notes and controls stay; other writes can also erase it). At risk by itself, under a condition: selected DX7 bank; MY KIT.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "rainbow",
    "name": "Rainbow Mode",
    "flags": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "Project A: four tracks and their sounds, notes, automation, song chain and name",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Project B: four tracks and their sounds, notes, automation, song chain and name",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "Project C: four tracks and their sounds, notes, automation, song chain and name",
      "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": "Project D: four tracks and their sounds, notes, automation, song chain and name",
      "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": "the FM6 patches used by the thirty-two user sounds",
      "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": "your old FM6 bank (B1–B27)",
      "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": "User sample USR1 and any slice positions you set in SLICE",
      "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": "User sample USR2 and any slice positions you set in SLICE",
      "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, names and sixteen-step patterns without automation",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving [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 copy to another pattern (without asking) [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 load or remove a screen language pack (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking) [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 save song and scenes (without asking) [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"
       }
      ]
     },
     {
      "object": "user sounds U17–U32, names and sixteen-step patterns without automation",
      "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 [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 copy to another pattern (without asking) [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 save a pattern or Save As (without asking) [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 save song and scenes (without asking) [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"
       }
      ]
     },
     {
      "object": "User sample USR3 and any slice positions you set in SLICE",
      "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": "the last session in the full version of Felucca",
      "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: 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; the FM6 patches used by the thirty-two user sounds; your old FM6 bank (B1–B27); User sample USR1 and any slice positions you set in SLICE; User sample USR2 and any slice positions you set in SLICE; user sounds U01–U16, names and sixteen-step patterns without automation; user sounds U17–U32, names and sixteen-step patterns without automation. At risk by itself, under a condition: User sample USR3 and any slice positions you set in SLICE. At risk when you act: the last session in the full version of Felucca.",
    "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": "multis M01–M02",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "multis M03–M04",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "multis M05–M06",
      "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": "multis M07–M08",
      "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": "saved patches",
      "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",
        "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 load or remove a screen language pack (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": "lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user wavetable 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": "user wavetable USR2",
      "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": "user wavetable USR3",
      "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": "multis M09–M10",
      "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 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": "multis M11–M12",
      "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 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": "multis M13–M14",
      "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 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": "multis M15–M16",
      "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 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": "patterns P01–P06",
      "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 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": "patterns P07–P12",
      "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": "lost"
       },
       {
        "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": "patterns P13–P16",
      "effect": "lost",
      "ways": [
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "last working music",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 bank B01–B32",
      "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: multis M01–M02; multis M03–M04; multis M05–M06; multis M07–M08; saved patches; user wavetable USR1; user wavetable USR2; user wavetable USR3. At risk by itself, under a condition: multis M09–M10; multis M11–M12; multis M13–M14; multis M15–M16; patterns P01–P06; patterns P07–P12. At risk when you act: 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 panel calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "inherited project A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited project D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     },
     {
      "object": "inherited user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "inherited user sample 3",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "up to sixteen liked worlds",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: inherited project A; inherited project B; inherited project C; inherited project D; inherited FM6 patches for user presets; inherited user sample 1; inherited user sample 2; inherited user preset bank 1; inherited user preset bank 2. At risk by itself, under a condition: inherited user sample 3. At risk when you act: up to sixteen liked worlds.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fart",
    "name": "Fart Machine One",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "learned button and encoder calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "chord preset P1: full synth project",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "chord preset P2: full synth project",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "chord preset P3: full synth project",
      "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": "chord preset P4: full synth project",
      "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": "FM6 bank B1-B27",
      "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": "uploaded sample USR1 and optional SLICE markers",
      "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": "uploaded sample USR2 and optional SLICE markers",
      "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 1-16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds 17-32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "uploaded sample USR3 and optional SLICE markers",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: chord preset P1: full synth project; chord preset P2: full synth project; chord preset P3: full synth project; chord preset P4: full synth project; FM6 bank B1-B27; uploaded sample USR1 and optional SLICE markers; uploaded sample USR2 and optional SLICE markers; user sounds 1-16; user sounds 17-32. At risk by itself, under a condition: uploaded sample USR3 and optional SLICE markers.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "sloopbanks",
    "name": "SLOOP DX7 Banks",
    "flags": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "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 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": "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 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": "section C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "section D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "working loop",
      "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": "user sample 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": "user sample 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 1–16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds 17–32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sample 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 patches B1–B27",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sample 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: section A; section B; section C; section D; working loop; user sample USR1; user sample USR2; user sounds 1–16; user sounds 17–32. At risk by itself, under a condition: user sample USR3. At risk when you act: FM6 patches B1–B27; user sample USR4.",
    "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 button and encoder calibration",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: 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": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "project 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "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": "project 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project 3",
      "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": "project 4",
      "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": "working music (autosave)",
      "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": "user samples 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": "user samples 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 older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17-U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user samples 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 voices B1-B16",
      "effect": "lost",
      "ways": [
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM6 voices B17-B32",
      "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: project 1; project 2; project 3; project 4; working music (autosave); user samples USR1; user samples USR2; user sounds U01-U16; user sounds U17-U32. At risk by itself, under a condition: user samples USR3. At risk when you act: FM6 voices B1-B16; FM6 voices B17-B32.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "waveloop",
    "name": "WaveLoop FM-1",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "song 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "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": "song 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song 3",
      "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": "last session saved for the next start",
      "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": "FM6 patches and controls for each drum in user sounds",
      "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": "user sample 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": "slice positions you set for 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": "user sample 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": "slice positions you set for USR2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start [uses its sample]",
        "effect": "damaged (part written over)"
       },
       {
        "way": "automatically during use (its autosave is on by default) [uses its sample]",
        "effect": "lost"
       },
       {
        "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": "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 sample]",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking) [uses its sample]",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking) [uses its sample]",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking) [uses its sample]",
        "effect": "lost"
       },
       {
        "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": "user sounds 1–16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds 17–32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song 4",
      "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 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": "song 5",
      "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 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": "song 6",
      "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 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": "song 7",
      "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 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": "song 8",
      "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 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": "song 9",
      "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 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": "song 10",
      "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 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": "song 11",
      "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 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": "song 12",
      "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": "lost"
       },
       {
        "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": "song order and selection",
      "effect": "lost",
      "ways": [
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: song 1; song 2; song 3; last session saved for the next start; FM6 patches and controls for each drum in user sounds; user sample USR1; slice positions you set for USR1; user sample USR2; slice positions you set for USR2; user sounds 1–16; user sounds 17–32. At risk by itself, under a condition: song 4; song 5; song 6; song 7; song 8; song 9; song 10; song 11; song 12. At risk when you act: song order and selection.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "orbit",
    "name": "ORBIT",
    "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)"
   },
   {
    "from": "floyd",
    "name": "SLOOP Floyd FM",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "song 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 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": "song 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 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": "song section C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "the working loop kept by autosave",
      "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": "user 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": "user 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 older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17–U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: song section A; song section B; song section C; song section D; the working loop kept by autosave; user sample slot USR1; user sample slot USR2; user sounds U01–U16; user sounds U17–U32. At risk by itself, under a condition: user sample slot USR3.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "winampfm",
    "name": "winampFM Synth",
    "flags": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "section A (whole project)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "section B (whole project)",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "section C (whole project)",
      "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": "section D (whole project)",
      "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": "working music kept by autosave",
      "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 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 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 1-16",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds 17-32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample 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 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: section A (whole project); section B (whole project); section C (whole project); section D (whole project); working music kept by autosave; sample USR1; sample USR2; user sounds 1-16; user sounds 17-32. At risk by itself, under a condition: sample USR3. At risk when you act: FM6 bank B1-B27; sample USR4.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "salt",
    "name": "Felucca [Salt]",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "project 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "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": "project 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project 3",
      "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": "project 4",
      "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": "user sample 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": "user sample 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 older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17-U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sample 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: project 1; project 2; project 3; project 4; user sample USR1; user sample USR2; user sounds U01-U16; user sounds U17-U32. At risk by itself, under a condition: user sample USR3.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "pigeon",
    "name": "PIGEON",
    "flags": "ACS?",
    "weakest_grade": "reported",
    "at_risk": [
     {
      "object": "shared song and drum sample bank",
      "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",
        "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 load or remove a screen language pack (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the chip-mode rescue tool (the computer asks first)",
        "effect": "lost"
       },
       {
        "way": "when you restore a program using the rescue tool with its question disabled (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": "lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "at an unknown time (the chip maker's code that does this is not public)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "saved pattern A",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "saved pattern B",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "saved pattern C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "saved pattern D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "the older FM6 patch bank PIGEON no longer uses",
      "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": "older FM6 patches for user presets",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "slice positions set by hand in the older format",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "partly lost"
       },
       {
        "way": "automatically, only when a new recording finishes and playback is stopped",
        "effect": "partly 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": "partly lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you send a sound or DX7 bank from the control page or with the computer tool (without asking)",
        "effect": "partly lost"
       },
       {
        "way": "when you upload a take from the control page or with the computer tool (without asking)",
        "effect": "partly lost"
       }
      ]
     },
     {
      "object": "user sample USR1 in the older format",
      "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": "chops, drum-pad and performance edits",
      "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": "user sample USR2 in the older format",
      "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": "older user preset bank 1",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "lost"
       },
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "older user preset bank 2",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sample USR3 in the older format",
      "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": "last working session",
      "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": [
     "If your PIGEON sample bank is large enough to reach the flash that installing Bubba Machine (beta) writes, PIGEON then rejects the whole bank, both songs and the kit. Export the PIGEON session and audio bank before switching."
    ],
    "owner_text": "At risk by itself: shared song and drum sample bank; saved pattern A; saved pattern B; saved pattern C; saved pattern D; the older FM6 patch bank PIGEON no longer uses; older FM6 patches for user presets; slice positions set by hand in the older format; user sample USR1 in the older format; chops, drum-pad and performance edits; user sample USR2 in the older format; older user preset bank 1; older user preset bank 2. At risk by itself, under a condition: user sample USR3 in the older format. At risk when you act: last working session. If your PIGEON sample bank is large enough to reach the flash that installing Bubba Machine (beta) writes, PIGEON then rejects the whole bank, both songs and the kit. Export the PIGEON session and audio bank before switching.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fm1move",
    "name": "FM1 Move",
    "flags": "ACS?",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "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 older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17–U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "project 1",
      "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) [uses its separate samples or sound setup]",
        "effect": "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 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) [uses its separate samples or sound setup]",
        "effect": "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 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)",
        "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": "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 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) [uses its separate samples or sound setup]",
        "effect": "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 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) [uses its separate samples or sound setup]",
        "effect": "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 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"
       }
      ]
     },
     {
      "object": "the working project kept by autosave",
      "effect": "sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain",
      "ways": [
       {
        "way": "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) [uses its separate samples or sound setup]",
        "effect": "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 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) [uses its separate samples or sound setup]",
        "effect": "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 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"
       }
      ]
     },
     {
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: sample slot USR1; sample slot USR2; user sounds U01–U16; user sounds U17–U32; 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); 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). At risk by itself, under a condition: sample slot USR3. At risk when you act: FM6 bank B1–B27.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "from": "fm1quest",
    "name": "FM1 Quest",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "song 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 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": "song 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 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": "song section C",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "song section D",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when you select a different pattern while playback is stopped and the current pattern or one waiting to be saved needs saving",
        "effect": "lost"
       },
       {
        "way": "when you copy to another pattern (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save a pattern or Save As (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you save song and scenes (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "working music (autosave)",
      "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 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 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 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": "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 older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       },
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "user sounds U17–U32",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use (its autosave is on by default)",
        "effect": "lost"
       },
       {
        "way": "automatically, only when older Bubba settings or patterns cause it to reset the space holding your data (with older patterns, takes and sounds are kept)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sample 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 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": "Piano Hero P1",
      "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 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": "Piano Hero P2",
      "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 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": "Piano Hero P3",
      "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 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": "Piano Hero P4",
      "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 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": "Piano Hero P5",
      "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 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": "Piano Hero P6",
      "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 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": "FM Hero H1",
      "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 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": "FM Hero H2",
      "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 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": "FM Hero H3",
      "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 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": "FM Hero H4",
      "effect": "lost",
      "ways": [
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM Hero H5",
      "effect": "lost",
      "ways": [
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "FM Hero H6",
      "effect": "lost",
      "ways": [
       {
        "way": "when you load or remove a screen language pack (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: song section A; song section B; song section C; song section D; working music (autosave); sample USR1; sample USR2; user sounds U01–U16; user sounds U17–U32. At risk by itself, under a condition: 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. At risk when you act: FM Hero H4; FM Hero H5; FM Hero H6.",
    "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": [
     "sixteen six-track patterns",
     "song order and four scenes",
     "eight saved sampler takes",
     "twelve uploaded sounds or DX7 banks",
     "screen language pack",
     "system preferences and last pattern"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): sixteen six-track patterns; song order and four scenes; eight saved sampler takes; twelve uploaded sounds or DX7 banks; 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)"
   },
   {
    "to": "baudgirl",
    "name": "Baud Girl FM-1+VA",
    "flags": "?",
    "weakest_grade": "inferred",
    "at_risk": [],
    "possibly_at_risk": [
     "sixteen six-track patterns",
     "song order and four scenes",
     "eight saved sampler takes",
     "twelve uploaded sounds or DX7 banks",
     "screen language pack",
     "system preferences and last pattern"
    ],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Possibly at risk (layout reported or inferred): sixteen six-track patterns; song order and four scenes; eight saved sampler takes; twelve uploaded sounds or DX7 banks; 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)"
   },
   {
    "to": "felucca",
    "name": "Felucca",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "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 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user 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)",
        "effect": "lost"
       },
       {
        "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 sample with the computer tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); 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)"
   },
   {
    "to": "sloop",
    "name": "SLOOP",
    "flags": "AS",
    "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": "when you hold SAVE and press white key 5–8 to save a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (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 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section from the web editor LIVE page (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you start an update or enter UPDATE MODE",
        "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": "when you hold SAVE and press white key 5–8 to save a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you load a song file from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you load a song from the editor LIVE playlist (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press REC on the SONG screen to save a section (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 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section from the web editor LIVE page (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you start an update or enter UPDATE MODE",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "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)",
        "effect": "lost"
       },
       {
        "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 sample with the computer tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "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 user sound from the 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)"
   },
   {
    "to": "x0x",
    "name": "X0X",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you back up unsaved project changes over USB (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you reset to factory settings (asks first: press the button to confirm)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you restore a backup over USB with the computer question skipped (without asking)",
        "effect": "damaged (part written over)"
       },
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "lost",
      "ways": [
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "lost",
      "ways": [
       {
        "way": "when you upload samples or break loops (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       },
       {
        "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."
    ],
    "owner_text": "At risk by itself: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); system preferences and last pattern. At risk when you act: eight saved sampler takes; twelve uploaded sounds or DX7 banks; screen language pack. 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.",
    "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": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you make a song with several sections using GEN (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 (without asking)",
        "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 select a song using MIDI PROGRAM CHANGE (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you switch song or project (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you make a song with several sections using GEN (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 (without asking)",
        "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 select a song using MIDI PROGRAM CHANGE (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you switch song or project (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "lost"
       },
       {
        "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 user preset (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you select a song using MIDI PROGRAM CHANGE (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 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)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if no readable bank of FM6 patches for your sounds survives and a compatible old FM6 bank is present",
        "effect": "some or all lost"
       },
       {
        "way": "when you make a song with several sections using GEN (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 (without asking)",
        "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 an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if no readable bank of FM6 patches for your sounds survives and a compatible old FM6 bank is present",
        "effect": "some or all lost"
       },
       {
        "way": "when you make a song with several sections using GEN (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 (without asking)",
        "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 an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: eight saved sampler takes (some or all lost); twelve uploaded sounds or DX7 banks (some or all lost); screen language pack. At risk by itself, under a condition: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost). At risk when you act: system preferences and last pattern.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "melodee",
    "name": "Melodee",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you quick-save a project (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 (without asking)",
        "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 a user preset (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you quick-save a project (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 (without asking)",
        "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 a user preset (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you quick-save a project (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 (without asking)",
        "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 a user preset (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "automatically, only if erasing all user presets was confirmed earlier but stopped before it finished",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm erasing all user presets to recover from a problem (asks first: press the button to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import SysEx sound data into slots (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you quick-save a project (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 (without asking)",
        "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 a user preset (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "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": "system preferences and last pattern",
      "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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); 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)"
   },
   {
    "to": "fomni",
    "name": "FoMni",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "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 when you act: 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)"
   },
   {
    "to": "amb",
    "name": "AMB-1",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you run hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "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 when you act: 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)"
   },
   {
    "to": "choralroot",
    "name": "ChoralRoot",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "some or all lost"
       },
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Import 0.21 sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Place all from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Undo from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all 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": "some or all 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": "some or all lost"
       },
       {
        "way": "when you delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete selected sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold SAVE for a global save (without asking)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you move or swap sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you place several selected sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you rename a sound with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you replace factory sounds from the device manager (the computer asks first)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory order from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory presets from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore favourite marks from the computer (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore favourite marks with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a DX7 bank (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically at first start",
        "effect": "some or all lost"
       },
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot favourites save is still stored and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot session save is still stored and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if there is no saved sound collection and at least one supported older user sound can be read",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Import 0.21 sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Place all from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Undo from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all 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": "some or all 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": "some or all lost"
       },
       {
        "way": "when you delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete selected sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold OCT- and OCT+ while powering on (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold SAVE for a global save (without asking)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you keep calibration or enter update mode by holding OCT- + OCT+ + HOME for 5 s (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you move or swap sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you place several selected sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you rename a sound with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you replace factory sounds from the device manager (the computer asks first)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory order from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory presets from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore favourite marks from the computer (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore favourite marks with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a DX7 bank (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Import 0.21 sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Place all from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Undo from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you confirm Flash Data erase 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": "some or all lost"
       },
       {
        "way": "when you delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete selected sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold SAVE after recording, editing or clearing this loop (without asking)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you move or swap sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you place a loop from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you place several selected sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press REC in Advance mode when the current loop is not empty (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you rename a sound with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you replace factory sounds from the device manager (the computer asks first)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory order from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory presets from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you swap loop slots from the device manager (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if an older ChoralRoot sound collection is still saved and the space for its next save still contains data",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if the space for its next save still needs clearing after a save or a failed start-up cleanup",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Import 0.21 sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Overwrite or Save as new and press OCT+ or SAVE (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Place all from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose Undo from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you confirm Flash Data erase 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": "some or all lost"
       },
       {
        "way": "when you delete a sound from the installer page (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete a sound with the computer tool (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete all user sounds or reset sounds to factory defaults from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you delete selected sounds from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold SAVE after recording, editing or clearing this loop (without asking)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you import a sound file or one DX7 or CZ voice from the installer page (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer question skipped (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you import a sound or a DX7 or CZ voice with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you move or swap sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you place a loop from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you place several selected sounds from the device manager (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press REC in Advance mode when the current loop is not empty (without asking)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you rename a sound with the computer tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "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": "some or all lost"
       },
       {
        "way": "when you replace factory sounds from the device manager (the computer asks first)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you restore a backup with the computer question skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory order from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore factory presets from the device manager (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you swap loop slots from the device manager (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "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": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm Flash Data erase with OCT+ twice (asks first: press again to confirm)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: sixteen six-track patterns; song order and four scenes; eight saved sampler takes; twelve uploaded sounds or DX7 banks; screen language pack. At risk when you act: system preferences and last pattern.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "ghoulbox",
    "name": "GHOULBOX",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "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": "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 (without asking)",
        "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 an FM6 user preset (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "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": "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 (without asking)",
        "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 an FM6 user preset (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current sound from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 upload a sample from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "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 upload a sample from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user 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"
       },
       {
        "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": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost). 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)"
   },
   {
    "to": "mvaveopen",
    "name": "M-VAVE FM-1 Open",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "lost",
      "ways": [
       {
        "way": "by itself right after the Workbench installs Open",
        "effect": "some or all 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": "song order and four scenes",
      "effect": "lost",
      "ways": [
       {
        "way": "by itself right after the Workbench installs Open",
        "effect": "some or all 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": "eight saved sampler takes",
      "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": "twelve uploaded sounds or DX7 banks",
      "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": "screen language pack",
      "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": "system preferences and last pattern",
      "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: sixteen six-track patterns; song order and four scenes. At risk when you act: eight saved sampler takes; twelve uploaded sounds or DX7 banks; screen language pack; system preferences and last pattern. 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": "-",
    "weakest_grade": null,
    "at_risk": [],
    "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": "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": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "obervave",
    "name": "OberVave",
    "flags": "-",
    "weakest_grade": null,
    "at_risk": [],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "Nothing shared.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "polly",
    "name": "Polly",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you install a QY70 style bank from the computer (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose COPY SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm FACTORY RESET (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm NEW SONG or FREE (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you copy a Band groove with SAVE and a white key (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you install a QY70 style bank from the computer (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you press SAVE (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the computer",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a backup for USB restore with computer questions skipped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you start a USB backup while playback is stopped, or enter a test session (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "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": "twelve uploaded sounds or DX7 banks",
      "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": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete power-on hardware calibration (without asking)",
        "effect": "lost"
       },
       {
        "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": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete power-on hardware calibration (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 send a QY70 style bank directly with a computer tool (without asking)",
        "effect": "damaged (part written over)"
       }
      ]
     }
    ],
    "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: 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; twelve uploaded sounds or DX7 banks; screen language pack; system preferences and last pattern. 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": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if a readable old Felucca/Skiff project needs conversion, with room for its patterns",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if a valid older FM6 patch bank is still stored and no current set of FM6 patches can be loaded",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose SAVE AS in the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm a sample upload in the web editor (the computer asks first)",
        "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 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project with the web editor’s older save command (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store an FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if a readable old Felucca/Skiff project needs conversion, with room for its patterns",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only if a valid older FM6 patch bank is still stored and no current set of FM6 patches can be loaded",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose SAVE AS in the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm a sample upload in the web editor (the computer asks first)",
        "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 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project with the web editor’s older save command (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store an FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you confirm a sample upload in the web editor (the computer asks first)",
        "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 upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you confirm a sample upload in the web editor (the computer asks first)",
        "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 upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you confirm a sample upload in 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, 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)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save, 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost). 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)"
   },
   {
    "to": "sloopdx",
    "name": "sloopDX",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "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 the working loop has unsaved changes, no song is playing, and you start an update or enter UPDATE MODE",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only when you leave a bank with unsaved voice changes and a bank is active",
        "effect": "some or all 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": "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 editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section and confirm it on the SECTION page (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section with SAVE and white keys 5–8 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the active bank by tapping EDIT twice on Store (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the active bank from the DX7 list (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the active bank from the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a DX7 bank from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "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 the working loop has unsaved changes, no song is playing, and you start an update or enter UPDATE MODE",
        "effect": "some or all lost"
       },
       {
        "way": "automatically, only when you leave a bank with unsaved voice changes and a bank is active",
        "effect": "some or all 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": "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 editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section and confirm it on the SECTION page (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section with SAVE and white keys 5–8 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the active bank by tapping EDIT twice on Store (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the active bank from the DX7 list (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the active bank from the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a DX7 bank from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a DX7 bank with a computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "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 MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send MY KIT from the web editor (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "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 MY KIT by tapping SAVE twice from KIT or LANE (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send MY KIT from the web editor (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the current sound from the editor (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"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you choose FACTORY RESET in ABOUT and confirm (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the current sound from the editor (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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself: sixteen six-track patterns; song order and four scenes; eight saved sampler takes (some or all lost); twelve uploaded sounds or DX7 banks (some or all lost). At risk when you act: 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)"
   },
   {
    "to": "rainbow",
    "name": "Rainbow Mode",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "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 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save an FM6 user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user 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)",
        "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)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user preset (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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); 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)"
   },
   {
    "to": "duell",
    "name": "DUELL beta",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase a user wavetable directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all 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": "some or all 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": "some or all lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user wavetable directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a user wavetable from the editor (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase a user wavetable directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all 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": "some or all 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": "some or all lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a user wavetable directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a user wavetable from the editor (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you save or erase a pattern (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "some or all lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a multi from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you save or erase a pattern (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "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 erase a pattern (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": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase all saved data (asks first: press again to confirm)",
        "effect": "lost"
       },
       {
        "way": "when you install DUELL with Erase saved data enabled (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you rename a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a patch on the panel (asks for that slot only: press the button to confirm; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or import a patch from the editor (the computer asks first for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send a patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send backup restore commands directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send the erase-all command directly with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [
     "The installer starts with its erase option selected for this firmware change. Clear it before installing to avoid this extra erase."
    ],
    "owner_text": "At risk when you act: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); 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. 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": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "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 when you act: 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)"
   },
   {
    "to": "maku",
    "name": "MAKU",
    "flags": "C",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if a valid older FM6 bank is still stored and no valid set of FM6 patches for your sounds is stored",
        "effect": "some or all lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost).",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "fart",
    "name": "Fart Machine One",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "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: screen language pack; system preferences and last pattern. 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": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you perform factory reset (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 chord preset (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "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 send an FM6 bank patch from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase an FM6 bank patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you perform factory reset (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 chord preset (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "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 send an FM6 bank patch from the web editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase an FM6 bank patch directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 erase a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or clear a user sample (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 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 erase a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or clear a user sample (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a 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)",
        "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 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)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you perform factory reset (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a 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, 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"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); 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)"
   },
   {
    "to": "sloopbanks",
    "name": "SLOOP DX7 Banks",
    "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, 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": "some or all lost"
       },
       {
        "way": "automatically, only when you have restored a working loop from a backup",
        "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 section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as a section with SAVE and a section key (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample set from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "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, 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": "some or all lost"
       },
       {
        "way": "automatically, only when you have restored a working loop from a backup",
        "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 section on the SAVE PROJECT page (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as a section with SAVE and a section key (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample set from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample kit to USR3 and USR4 (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample set from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "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 a sample kit to USR3 and USR4 (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample set from the web editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound on the FM-1 (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "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 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 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)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound on the FM-1 (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "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 user sound from the 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)"
   },
   {
    "to": "fumi",
    "name": "FuMi-1",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you complete hardware calibration (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "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 when you act: 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)"
   },
   {
    "to": "jangada",
    "name": "Jangada",
    "flags": "AS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 1 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 2 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 3 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 4 (asks first or waits for you to turn again)",
        "effect": "some or all 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": "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 restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "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 a project in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send user samples to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send user samples to the FM-1 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 during use",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 1 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 2 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 3 (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you confirm SAVE for project 4 (asks first or waits for you to turn again)",
        "effect": "some or all 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": "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 restore a backup to Jangada with a computer tool, without the web editor (without asking)",
        "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 a project in Jangada with a computer tool, without the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send user samples to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send user samples to the FM-1 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 user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 user samples to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send user samples to the FM-1 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 user samples or restore an empty sample slot in Jangada with a computer tool, without the web editor (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 user samples to Jangada with a computer tool, without the web editor (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send user samples to the FM-1 from the web editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "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 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 user sound from the editor (without asking; writes the whole bank)",
        "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"
       },
       {
        "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"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a 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 user sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "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"
       }
      ]
     }
    ],
    "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)"
   },
   {
    "to": "waveloop",
    "name": "WaveLoop FM-1",
    "flags": "ACS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically at its first start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "some or all lost"
       },
       {
        "way": "automatically during use, from its second start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "some or all lost"
       },
       {
        "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": "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 an FM6 or DRUM user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 or DRUM sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically at its first start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "some or all lost"
       },
       {
        "way": "automatically during use, from its second start, after five seconds with playback stopped, no sound and no music changes",
        "effect": "some or all lost"
       },
       {
        "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": "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 an FM6 or DRUM user sound (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save or rename this song from the panel while playback has stopped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send an FM6 user sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store the current FM6 or DRUM sound from the editor (without asking; writes the whole bank)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if this song is chosen for automatic saving after loading, saving or restoring a session, and project slot D is empty, holds a session saved automatically for the next start or holds data WaveLoop cannot read; playback must be stopped, with five seconds of silence and no music changes",
        "effect": "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 or rename this song from the panel while playback has stopped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only if this song is chosen for automatic saving after loading, saving or restoring a session, and project slot D is empty, holds a session saved automatically for the next start or holds data WaveLoop cannot read; playback must be stopped, with five seconds of silence and no music changes",
        "effect": "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 or rename this song from the panel while playback has stopped (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "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": "lost"
       },
       {
        "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 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)",
        "effect": "lost"
       },
       {
        "way": "when you save this song or rename it from the editor (the computer asks first)",
        "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"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you save a user sound (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"
       }
      ]
     }
    ],
    "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 by itself, under a condition: eight saved sampler takes (some or all lost); twelve uploaded sounds or DX7 banks (some or all lost); screen language pack. At risk when you act: system preferences and last pattern.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   },
   {
    "to": "orbit",
    "name": "ORBIT",
    "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)"
   },
   {
    "to": "floyd",
    "name": "SLOOP Floyd FM",
    "flags": "AS",
    "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": "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 save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "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": "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 save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a section (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as a section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "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)",
        "effect": "lost"
       },
       {
        "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)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "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 user sound from the 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)"
   },
   {
    "to": "winampfm",
    "name": "winampFM Synth",
    "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, only when a section you stored is still waiting to be saved after a restart",
        "effect": "some or all lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold REC in IMPORTER to erase USR1 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold REC in IMPORTER to erase USR2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section A directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section B directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section C directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section D directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the selected project slot with the PROJECT GO knob (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section A (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section B (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section C (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section D (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR1 with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR2 with a MIDI tool (without asking)",
        "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, only when a section you stored is still waiting to be saved after a restart",
        "effect": "some or all lost"
       },
       {
        "way": "when you enter update mode, start a firmware update or restart from the computer",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold REC in IMPORTER to erase USR1 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold REC in IMPORTER to erase USR2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you record the current music into the selected song section (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section A directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section B directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section C directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore section D directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the selected project slot with the PROJECT GO knob (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section A (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section B (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section C (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you store section D (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR1 with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR2 with a MIDI tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold REC in IMPORTER to erase USR3 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR2 with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR3 with a MIDI tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you hold REC in IMPORTER to erase USR3 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR2 with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase USR3 with a MIDI tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you hold REC in IMPORTER to erase USR3 (without asking)",
        "effect": "lost"
       },
       {
        "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 upload or erase USR3 with a MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a user sound with a USER GO knob (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send, store or erase a user sound directly with a MIDI tool (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)"
   },
   {
    "to": "salt",
    "name": "Felucca [Salt]",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you save a project (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you send samples to the FM-1 from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload or erase a sample with the computer tool (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "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)",
        "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)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "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 store the current sound from the editor (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); 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)"
   },
   {
    "to": "pigeon",
    "name": "PIGEON",
    "flags": "CS",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample in USR1 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase the PIGEON bank with the bank tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a PIGEON bank with the bank tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample in USR1 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a PIGEON bank with the library tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample in USR1 in the older format from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample in USR2 in the older format from the editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "automatically, only when you edit the sampler and its matching sample leaves room to save those edits",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample in USR1 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase the PIGEON bank with the bank tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "some or all lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save a project from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save or paste the selected pattern (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a PIGEON bank from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a PIGEON bank with the bank tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample in USR1 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a PIGEON bank with the library tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample in USR1 in the older format from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample in USR2 in the older format from the editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample in USR3 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all 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": "some or all 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": "some or all lost"
       },
       {
        "way": "when you send a sample in USR3 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you upload a sample in USR3 in the older format from the editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "twelve uploaded sounds or DX7 banks",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample in USR2 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample in USR3 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all 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": "some or all 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": "some or all lost"
       },
       {
        "way": "when you send a sample in USR3 in the older format directly with a MIDI tool (without asking)",
        "effect": "some or all 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": "some or all lost"
       },
       {
        "way": "when you upload a sample in USR3 in the older format from the editor (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "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 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 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)",
        "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": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a PIGEON archive with the library tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you restore a PIGEON session in its editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a backup from the older editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore compatible backup data with another MIDI tool (without asking)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk by itself, under a condition: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost). At risk when you act: eight saved sampler takes; twelve uploaded sounds or DX7 banks; 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)"
   },
   {
    "to": "fm1move",
    "name": "FM1 Move",
    "flags": "S",
    "weakest_grade": "read-in-source",
    "at_risk": [
     {
      "object": "sixteen six-track patterns",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase a sample directly 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 a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample from the device page (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "song order and four scenes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase a sample directly 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 a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample from the device page (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 directly 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 a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample from the device page (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 directly 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 a sample directly with a MIDI tool (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you upload a sample from the device page (the computer asks first)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you erase a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you import a preset file from the device page (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 send a sample directly with a MIDI tool (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or clear a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send, store, rename or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store a user sound from the device page (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you upload a sample from the device page (the computer asks first)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you import a preset file from the device page (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 send or clear a user-sound bank directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you send, store, rename or erase a user sound directly with a MIDI tool (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you store a user sound from the device page (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     }
    ],
    "possibly_at_risk": [],
    "carried_over": [],
    "kept_unseen": [],
    "notes": [],
    "owner_text": "At risk when you act: sixteen six-track patterns (some or all lost); song order and four scenes (some or all lost); 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)"
   },
   {
    "to": "fm1quest",
    "name": "FM1 Quest",
    "flags": "AS",
    "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": "when you enter update mode or receive a firmware update",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase sample USR1 by holding REC on it in IMPORTER (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase sample USR2 by holding REC on it in IMPORTER (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 editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project A (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project B (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project C (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project D (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section A from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section B from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section C from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section D from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section A (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section B (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section C (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section D (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "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": "when you enter update mode or receive a firmware update",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase a sample with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase sample USR1 by holding REC on it in IMPORTER (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase sample USR2 by holding REC on it in IMPORTER (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 editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project A (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project B (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project C (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save project D (asks first or waits for you to turn again)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section A from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section B from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section C from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save section D from SONG (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section A (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section B (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section C (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you save the current music as section D (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or clear a section with computer commands (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "eight saved sampler takes",
      "effect": "some or all lost",
      "ways": [
       {
        "way": "when you erase a sample with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase sample USR3 by holding REC on it in IMPORTER (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 a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song H1 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song H2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song H3 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P1 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P3 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P4 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P5 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P6 (without asking)",
        "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 computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you erase sample USR3 by holding REC on it in IMPORTER (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 a sample from the editor (the computer asks first)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send a sample with computer commands (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song H1 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song H2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song H3 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P1 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P2 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P3 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P4 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P5 (without asking)",
        "effect": "some or all lost"
       },
       {
        "way": "when you send or erase training song P6 (without asking)",
        "effect": "some or all lost"
       }
      ]
     },
     {
      "object": "screen language pack",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a user-sound bank with computer commands (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the current sound from the editor (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 send or erase training song H4 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H5 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send or erase training song H6 (without asking)",
        "effect": "lost"
       },
       {
        "way": "when you send, save or erase a user sound with computer commands (without asking; writes the whole bank)",
        "effect": "lost"
       }
      ]
     },
     {
      "object": "system preferences and last pattern",
      "effect": "lost",
      "ways": [
       {
        "way": "when you restore a backup from the editor (the computer asks once before restoring the whole backup)",
        "effect": "lost"
       },
       {
        "way": "when you restore a user-sound bank with computer commands (without asking; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save or erase a USER sound (asks or waits for you to turn again for that slot only; writes the whole bank)",
        "effect": "lost"
       },
       {
        "way": "when you save the current sound from the editor (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 send, save or erase a user sound with computer commands (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)"
   },
   {
    "to": "grooveos",
    "name": "Groove OS",
    "flags": "?",
    "weakest_grade": null,
    "at_risk": [],
    "possibly_at_risk": [
     "sixteen six-track patterns",
     "song order and four scenes",
     "system preferences and last pattern",
     "eight saved sampler takes",
     "twelve uploaded sounds or DX7 banks",
     "screen language pack"
    ],
    "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): sixteen six-track patterns; song order and four scenes; system preferences and last pattern; eight saved sampler takes; twelve uploaded sounds or DX7 banks; screen language pack. The official route first puts V15 back, then installs Groove OS. Treat this firmware’s saved work as lost and back it up with its own tools before starting. Groove OS’s project saves, autosave, preferences, sample uploads and extra installed pages can also replace leftover work; nobody has published which parts of storage they use. A sound missing from PRESETS may still occupy storage, and do not count on Groove OS’s own backups to keep it.",
    "source": "flash-atlas derived/matrix.json (generated by apply_to_maps.py; do not edit by hand)"
   }
  ]
 },
 "disagreements": [
  {
   "topic": "Channel copy carries the engine",
   "docs_say": "The saving section says the machines stay unchanged during channel copy.",
   "source_says": "HOME + EDIT copying a note track also clones its engine, while keeping the destination mute and MIDI channel.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/MANUAL.md",
    "lines": "379-382",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L379-L382"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_input.c",
    "lines": "2154-2177",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2154-L2177"
   }
  },
  {
   "topic": "Destructive actions use different confirmation paths",
   "docs_say": "The opening questions section describes OCT+ confirmation for every erasure.",
   "source_says": "REC two seconds clears an eligible sequence or loop without a question; pattern clear instead requires a second SAVE tap within three seconds.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/MANUAL.md",
    "lines": "24-26",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L24-L26"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_input.c",
    "lines": "2371-2412",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2371-L2412"
   }
  },
  {
   "topic": "Sampler MIDI reaches eight pads",
   "docs_say": "The MIDI section describes grid note numbers covering sixteen instruments or pads.",
   "source_says": "The MIDI parser masks the sampler note to eight values, so notes repeat pads 1–8 rather than reaching pads 9–16.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/MANUAL.md",
    "lines": "390-394",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L390-L394"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_audio.c",
    "lines": "133-137",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_audio.c#L133-L137"
   }
  },
  {
   "topic": "BX-7 LFO tap",
   "docs_say": "The guide groups BX-7 with machines whose LFO button latches the tie layer.",
   "source_says": "BX-7 has a four-control LFO page, and tapping LFO opens that page; holding LFO still opens the tie layer.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/MANUAL.md",
    "lines": "101",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L101"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_params.c",
    "lines": "70-77",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_params.c#L70-L77"
   }
  },
  {
   "topic": "Releasing a LOOP-mode sampler pad",
   "docs_say": "The guide says a released sustain loop continues to the pad end.",
   "source_says": "Releasing a held LOOP pad enters its release envelope immediately, just as KEY mode does.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/MANUAL.md",
    "lines": "267-272",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L267-L272"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_engines.c",
    "lines": "420-427",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_engines.c#L420-L427"
   }
  },
  {
   "topic": "Pitch-layer hint points at the wrong knob",
   "docs_say": "The guide puts swing on K2, semitone transpose on K3 and octave transpose on K4.",
   "source_says": "Those controls match the handler, but one pitch-layer screen hint labels K2 as the octave knob.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/MANUAL.md",
    "lines": "338-349",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L338-L349"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "core/bm_input.c",
    "lines": "969-973",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L969-L973"
   },
   "additional_source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "3319-3322",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3319-L3322"
    }
   ]
  },
  {
   "topic": "What a saved pattern can actually fit",
   "docs_say": "The guide describes the pattern SAVE and quick-save actions without explaining a false-success path for an overfull pattern.",
   "source_says": "An overfull packed pattern shows PATTERN FULL: NO ROOM, writes no pattern and returns success to SAVE, which clears its dirty flag; later saving cannot recover it after power-off. A slightly smaller payload that still exceeds the flash record limit instead reports a flash error. Reduce the pattern and save again before turning off.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "path": "docs/en/MANUAL.md",
    "lines": "377-382",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L377-L382"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "core/bm_app.c",
    "lines": "569-573",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
   },
   "additional_source_refs": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "core/bm_app.c",
     "lines": "632-639",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L639"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "core/bm_store.c",
     "lines": "122-134",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_store.c#L122-L134"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "core/bm_config.h",
     "lines": "55",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L55"
    }
   ]
  },
  {
   "topic": "Saving with autosave off",
   "docs_say": "The guide lists an autosave switch and pattern-save controls but does not explain that SAVE excludes system preferences.",
   "source_says": "SAVE and quick save do not write system preferences; turning autosave off marks them dirty but disables their only normal save path, so that change does not survive restart. Re-enabling autosave allows a later stopped save of preferences.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "path": "docs/en/MANUAL.md",
    "lines": "377-386",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L377-L386"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "core/bm_input.c",
    "lines": "2391-2424",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L2391-L2424"
   },
   "additional_source_refs": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "core/bm_input.c",
     "lines": "3099-3120",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3099-L3120"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "core/bm_app.c",
     "lines": "1157-1161",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1157-L1161"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "core/bm_input.c",
     "lines": "3649-3653",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L3649-L3653"
    }
   ]
  },
  {
   "topic": "All flash writes happen while stopped",
   "docs_say": "The saving section limits its flash-writing description to stopped transport.",
   "source_says": "Musical save jobs require STOP, but the fault log writes at application startup, and update-area cleanup can erase before normal play or safe mode. Sending firmware updates and running the developer flash test also write outside the musical save jobs.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "path": "docs/en/MANUAL.md",
    "lines": "377-380",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L377-L380"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "path": "hal/fm1/fm1_main.c",
    "lines": "740-745",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L740-L745"
   },
   "additional_source_refs": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "hal/fm1/fm1_boot.c",
     "lines": "81-137",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_boot.c#L81-L137"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "hal/fm1/fm1_update.c",
     "lines": "263-335",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_update.c#L263-L335"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "path": "hal/fm1/fm1_main.c",
     "lines": "443-465",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L443-L465"
    }
   ]
  },
  {
   "topic": "TRS MIDI input is absent",
   "docs_say": "The guide lists both USB and TRS MIDI input.",
   "source_says": "This release receives musical MIDI over USB only; there is no TRS input receiver in the FM-1 implementation.",
   "docs_ref": {
    "kind": "doc",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "docs/en/MANUAL.md",
    "lines": "390-394",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/MANUAL.md#L390-L394"
   },
   "source_ref": {
    "kind": "source",
    "repo": "Erbubar23/bubba-machine",
    "ref": "v0.8.0-beta",
    "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
    "path": "hal/fm1/fm1_main.c",
    "lines": "229-234",
    "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L229-L234"
   },
   "additional_source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_usb_midi.c",
     "lines": "395-403",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_usb_midi.c#L395-L403"
    }
   ]
  }
 ],
 "not_mapped": [
  "The separate mixer-fader screen exists in source but cannot be reached through this release’s panel navigation.",
  "The separate MIDI-control screen exists in source but cannot be reached through this release’s panel navigation.",
  "The proprietary official M-VAVE loader and SDK system-store internals are unavailable as source here; their additional erase ranges, startup writes and handling of foreign records cannot be proved. The program-image extent is read from the pinned local package; application writes and startup cleanup are read from source.",
  "The rescue tool can copy all flash bytes but its shipped restore command writes only the program; a supported musical-data restore is absent.",
  "No FM-1 unit was used; timing, audio, LED intensity and recovery behavior are read from the tagged source, not measured on hardware.",
  "The separate bubba-diag package is a silent panel diagnostic, outside this musical control map."
 ],
 "jack_notes": [
  {
   "part": "jack_usb_c",
   "note": "USB carries MIDI notes and clock, the control platform and firmware installation; incoming channels 1–6 address tracks T1–T6, but the sampler input repeats only pads 1–8.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_main.c",
     "lines": "199-234",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L199-L234"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_audio.c",
     "lines": "105-137",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_audio.c#L105-L137"
    }
   ]
  },
  {
   "part": "jack_audio_out",
   "note": "Normally carries the stereo mix; Split Sync replaces the left output with clock pulses and puts the mono mix on the right.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_dsp.c",
     "lines": "463-471",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_dsp.c#L463-L471"
    }
   ]
  },
  {
   "part": "jack_midi_in",
   "note": "The TRS MIDI IN jack has no receiver in this release and does not play notes or receive clock; use USB MIDI.",
   "evidence": "read-in-source",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_main.c",
     "lines": "229-234",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_main.c#L229-L234"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "hal/fm1/fm1_usb_midi.c",
     "lines": "395-403",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/hal/fm1/fm1_usb_midi.c#L395-L403"
    }
   ]
  }
 ],
 "save_notes": [
  {
   "note": "Stop playback before using SAVE or a flash copy; requests made while playing are dropped rather than kept for the next stop.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "702-718",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L702-L718"
    }
   ]
  },
  {
   "note": "A pattern that grows too dense can leave the older saved pattern in place while losing its unsaved indicator; another size limit reports a flash error instead, so reduce a full pattern and save again before switching off.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "569-573",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L569-L573"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "632-639",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L632-L639"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_store.c",
     "lines": "121-130",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_store.c#L121-L130"
    }
   ]
  },
  {
   "note": "Each note step has four note slots; extra distinct recorded notes are omitted, and each note looper stops adding events at 96 note-on or note-off events without a full warning.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_input.c",
     "lines": "1016-1030",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_input.c#L1016-L1030"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_seq.c",
     "lines": "328-337",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_seq.c#L328-L337"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_config.h",
     "lines": "24-34",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_config.h#L24-L34"
    }
   ]
  },
  {
   "note": "Undo restores one track’s step sequence and its locks, not its engine, sound settings, pad assignments, note loop, recorded audio, song or saved flash; changing machines clears that track’s undo and redo.",
   "source": [
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "992-1026",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L992-L1026"
    },
    {
     "kind": "source",
     "repo": "Erbubar23/bubba-machine",
     "ref": "v0.8.0-beta",
     "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
     "path": "core/bm_app.c",
     "lines": "1071-1078",
     "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/core/bm_app.c#L1071-L1078"
    }
   ]
  }
 ],
 "refresh_check_fixes": [
  {
   "round": 1,
   "error": "1 Autosave OFF is temporary",
   "fixed": "Both rows now describe song/settings autosave, the unsaved OFF switch and the restart overwrite risk.",
   "at": "controls.encoder_knob1[47]; controls.encoder_algorithm[16]"
  },
  {
   "round": 1,
   "error": "2 Chip-mode reset discards unsaved work",
   "fixed": "Both CHIP MODE rows warn of unsaved loss; backup instructions save patterns, song/scenes, takes and preferences before reset.",
   "at": "controls.button_oct_down[12]; controls.button_oct_up[12]; switching_note.back_up_first"
  },
  {
   "round": 1,
   "error": "6 Recovery after four failed starts",
   "fixed": "Appended recovery mode and power-on entry, and explained safe-mode escalation and quick power-cycle counting.",
   "at": "modes.safe_mode; modes.chip_mode (appended); controls.switch_power[0] (appended)"
  },
  {
   "round": 1,
   "error": "7 TRS MIDI IN is inactive",
   "fixed": "Added the inactive jack note and docs/source disagreement; removed the obsolete uncertainty.",
   "at": "jack_notes[2] (appended); disagreements[9] (appended); not_mapped"
  },
  {
   "round": 1,
   "error": "8 Deleted take numbers are reused",
   "fixed": "Deletion and YES rows warn that other saved patterns retain references and may play different audio under a reused number.",
   "at": "controls.key_fs5[44]; controls.button_oct_up[0]"
  },
  {
   "round": 1,
   "error": "3 Registry pre-release docs reference",
   "fixed": "Changed to default_branch and corrected the explanation after reading the registry resolver.",
   "at": "refresh/work/bubba.registry.json.sources[0]"
  },
  {
   "round": 1,
   "error": "10 Owner prose and switching-table reference",
   "fixed": "Removed process wording; the guide itself carries switching warnings instead of sending owners to an internal atlas.",
   "at": "control-maps/bubba.md introduction and Before you switch firmware; switching_note.cross_firmware"
  },
  {
   "round": 1,
   "error": "11 Available-light citation",
   "fixed": "Added the availability test and DIM/OFF rule to all matching Available entries.",
   "at": "lights.button_seq[0] and equivalent Available entries"
  },
  {
   "round": 1,
   "error": "12 USB shared part id",
   "fixed": "Changed the existing USB note to jack_usb_c without moving it.",
   "at": "jack_notes[0].part"
  },
  {
   "round": 1,
   "error": "13 Bundled licence terms",
   "fixed": "Added library and factory-sound terms while retaining the firmware licence, with pinned sources.",
   "at": "licence; licence_sources; control-maps/bubba.md footer"
  },
  {
   "round": 1,
   "error": "14 No factory takes shipped",
   "fixed": "Removed hypothetical factory takes from the three take-edit rows.",
   "at": "controls.encoder_knob1[67]; controls.encoder_knob2[56]; controls.encoder_knob3[56]"
  },
  {
   "round": 1,
   "error": "15 Exact mode-entry paths",
   "fixed": "Corrected drum-editor paths, SCALE exception and SEQ-only fill/mute shortcuts.",
   "at": "modes.instrument_hit; modes.instrument_instrument; modes.note_keyboard; modes.fill_steps; modes.lane_mute"
  },
  {
   "round": 1,
   "error": "4 System-store overlap warning",
   "fixed": "Named every foreign object overlapping the SDK system store, retaining uncertainty about proprietary write timing and geometry.",
   "at": "switching_note.cross_firmware; storage.owner_warning_groups.proprietary_system_store_possible_writes"
  },
  {
   "round": 1,
   "error": "5 Complete later-write loss lists",
   "fixed": "Rebuilt owner lists by write trigger from all 268 foreign-data rows, covering later pattern/song saves, preference rotation, recordings/imports, sounds/DX7 sends, language changes and recovery writes; added return-trip consequences.",
   "at": "switching_note.cross_firmware; storage.owner_warning_groups; control-maps/bubba.md Before you switch firmware"
  },
  {
   "round": 1,
   "error": "9 First-preference loss list",
   "fixed": "Derived the first preference warning from the first target sector: excludes Hortator/FM-106 and identifies M-VAVE Open sample audio.",
   "at": "switching_note.cross_firmware; storage.owner_warning_groups.first_preferences_write"
  },
  {
   "round": 2,
   "error": "1 Both Rainbow sound banks at risk",
   "fixed": "Corrected the later preference-save warning to name both sixteen-sound banks, thirty-two sounds total; kept the first-preference warning scoped to its first bank.",
   "at": "switching_note.cross_firmware; refresh/work/bubba.storage.json.owner_warning_groups.later_preferences_writes; control-maps/bubba.md Later preference saves"
  },
  {
   "round": 2,
   "error": "2 Grid fill and mute paths",
   "fixed": "Expanded both grid-machine paths beyond SEQ; preserved PADS, TAKES, RECORD and the separately handled CHORDS exception, with note-track fill restricted to SEQ.",
   "at": "modes.fill_steps.how_to_get_there; modes.lane_mute.how_to_get_there"
  },
  {
   "round": 2,
   "error": "3 Power-on scope and recovery citations",
   "fixed": "Refiled the existing power-on entry under any without moving it, and added the held-OCT recovery paths in safe and normal operation to the chip-mode sources.",
   "at": "controls.switch_power[0].mode; modes.chip_mode.source; control-maps/bubba.md Recovery and power"
  },
  {
   "round": 2,
   "error": "4 Open staging holds project or settings",
   "fixed": "Removed the sample-transfer claim and named the staged replacement for one USER project or settings from the atlas object’s holds field.",
   "at": "switching_note.cross_firmware; refresh/work/bubba.storage.json.owner_warning_groups.install_program_image; control-maps/bubba.md Installing Bubba"
  }
 ],
 "licence_sources": [
  {
   "kind": "doc",
   "repo": "Erbubar23/bubba-machine",
   "ref": "v0.8.0-beta",
   "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
   "path": "README.md",
   "lines": "61-66",
   "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/README.md#L61-L66"
  },
  {
   "kind": "doc",
   "repo": "Erbubar23/bubba-machine",
   "ref": "v0.8.0-beta",
   "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
   "path": "third_party/README.md",
   "lines": "3-9",
   "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/third_party/README.md#L3-L9"
  },
  {
   "kind": "doc",
   "repo": "Erbubar23/bubba-machine",
   "ref": "v0.8.0-beta",
   "commit": "aac07df1b75a57833801f039c7d83ceb9b210fd5",
   "path": "docs/en/CREDITS.md",
   "lines": "54-60",
   "url": "https://github.com/Erbubar23/bubba-machine/blob/aac07df1b75a57833801f039c7d83ceb9b210fd5/docs/en/CREDITS.md#L54-L60"
  }
 ]
}