{
 "_sources": [
  {
   "type": "vendor-doc",
   "name": "norns script abacus",
   "url": "https://github.com/schollz/abacus/tree/f4e5eb93886b45c7de30bee61ad086c1c121ec6e",
   "notes": "norns script abacus: abacus.lua @ f4e5eb9. Licence MIT. Listed in norns.community (monome/norns-community community.json @ 41d05e7).",
   "firmware": "abacus-f4e5eb9",
   "imported_at": "2026-10-26"
  }
 ],
 "_limitations": "Source: the Lua source of the norns script abacus by infinitedigits (schollz/abacus at f4e5eb9), listed in norns.community. Shares the norns system OSC of monome/norns.vendor.fw-2.9.4 (port 10111, /param, /remote): give the norns' IP address as host override. Its own routes are the 9 parameter(s) whose id is written out in its source, read without running it, with range, options and default when written out too; set them while the script runs on the norns. 5 parameter call(s) could not be read without running the script (ids built at run time, values from variables) and are not mapped: reach them with the base driver's /param/{id}. Parameters added by libraries or engines outside the repository are not mapped either. A value goes in the parameter's units (an option's index from 1). MIDI is not mapped: the script's MIDI handling is its own and parameter MIDI mappings are learned by each user (PMAP). Untested on hardware.",
 "_coverage": {
  "host_software": "norns script abacus",
  "commands": 9,
  "subscriptions": 0,
  "replies": 0
 },
 "midi_of": "monome/norns.vendor.fw-2.9.4",
 "device": {
  "name": "norns",
  "vendor": "Monome",
  "revision": "script abacus (schollz/abacus @ f4e5eb9)",
  "osc_prefix": "/norns_abacus"
 },
 "commands": [
  {
   "osc": "/param/load_loops",
   "section": "save/load",
   "args": [],
   "forward": {
    "path": "/param/load_loops",
    "args": [
     1
    ]
   },
   "_notes": "load sample: trigger."
  },
  {
   "osc": "/param/open_previous",
   "section": "save/load",
   "args": [],
   "forward": {
    "path": "/param/open_previous",
    "args": [
     1
    ]
   },
   "_notes": "load previous: trigger."
  },
  {
   "osc": "/param/effect_stutter",
   "section": "effects",
   "args": [
    {
     "name": "value",
     "type": "float"
    }
   ],
   "forward": {
    "path": "/param/effect_stutter",
    "args": [
     "{value}"
    ]
   },
   "_notes": "effect stutter."
  },
  {
   "osc": "/param/effect_reverse",
   "section": "effects",
   "args": [
    {
     "name": "value",
     "type": "float"
    }
   ],
   "forward": {
    "path": "/param/effect_reverse",
    "args": [
     "{value}"
    ]
   },
   "_notes": "effect reverse."
  },
  {
   "osc": "/param/effect_slow",
   "section": "effects",
   "args": [
    {
     "name": "value",
     "type": "float"
    }
   ],
   "forward": {
    "path": "/param/effect_slow",
    "args": [
     "{value}"
    ]
   },
   "_notes": "effect slow."
  },
  {
   "osc": "/param/crow_mode",
   "section": "crow",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "free": 1,
      "samples": 2
     }
    }
   ],
   "forward": {
    "path": "/param/crow_mode",
    "args": [
     "{value}"
    ]
   },
   "_notes": "crow mode: option index, from 1."
  },
  {
   "osc": "/param/gate_voltage",
   "section": "crow",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/gate_voltage",
    "args": [
     "{value}"
    ]
   },
   "_notes": "gate threshold: -5 to 10 volts."
  },
  {
   "osc": "/param/crow_gating",
   "section": "crow",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "once": 1,
      "continuous": 2
     }
    }
   ],
   "forward": {
    "path": "/param/crow_gating",
    "args": [
     "{value}"
    ]
   },
   "_notes": "gating: option index, from 1."
  },
  {
   "osc": "/param/crow_slew1",
   "section": "crow",
   "args": [
    {
     "name": "value",
     "type": "float"
    }
   ],
   "forward": {
    "path": "/param/crow_slew1",
    "args": [
     "{value}"
    ]
   },
   "_notes": "crow slew."
  }
 ]
}
