{
 "_sources": [
  {
   "type": "vendor-doc",
   "name": "norns script descartes",
   "url": "https://github.com/keenanmcdonald/descartes/tree/1b56336e5626add1cd12f4f736a7d274d05f3389",
   "notes": "norns script descartes: descartes.lua @ 1b56336. Licence MIT. Listed in norns.community (monome/norns-community community.json @ 41d05e7).",
   "firmware": "descartes-1b56336",
   "imported_at": "2026-10-26"
  }
 ],
 "_limitations": "Source: the Lua source of the norns script descartes by kjames (keenanmcdonald/descartes at 1b56336), 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 30 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. 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 descartes",
  "commands": 30,
  "subscriptions": 0,
  "replies": 0
 },
 "midi_of": "monome/norns.vendor.fw-2.9.4",
 "device": {
  "name": "norns",
  "vendor": "Monome",
  "revision": "script descartes (keenanmcdonald/descartes @ 1b56336)",
  "osc_prefix": "/norns_descartes"
 },
 "commands": [
  {
   "osc": "/param/midiInPort",
   "section": "midi input",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/midiInPort",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi in port."
  },
  {
   "osc": "/param/midiNoteInput",
   "section": "midi input",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midiNoteInput",
    "args": [
     "{value}"
    ]
   },
   "_notes": "note input: option index, from 1."
  },
  {
   "osc": "/param/xClock",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      4
     ],
     "values": {
      "crow input 1": 1,
      "crow input 2": 2,
      "internal clock": 3,
      "global clock": 4
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/xClock",
    "args": [
     "{value}"
    ]
   },
   "_notes": "clock source: option index, from 1."
  },
  {
   "osc": "/param/xResetOnStart",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/xResetOnStart",
    "args": [
     "{value}"
    ]
   },
   "_notes": "reset on start: option index, from 1."
  },
  {
   "osc": "/param/xStep",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      5
     ],
     "values": {
      "crow output 1": 1,
      "crow output 2": 2,
      "crow output 3": 3,
      "crow output 4": 4,
      "none": 5
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/xStep",
    "args": [
     "{value}"
    ]
   },
   "_notes": "step: option index, from 1."
  },
  {
   "osc": "/param/xGate",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      5
     ],
     "values": {
      "crow output 1": 1,
      "crow output 2": 2,
      "crow output 3": 3,
      "crow output 4": 4,
      "none": 5
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/xGate",
    "args": [
     "{value}"
    ]
   },
   "_notes": "gate: option index, from 1."
  },
  {
   "osc": "/param/midiChanX",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midiChanX",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi channel."
  },
  {
   "osc": "/param/midiVelX",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      127
     ],
     "default": 100
    }
   ],
   "forward": {
    "path": "/param/midiVelX",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi velocity."
  },
  {
   "osc": "/param/xMidiOffset",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      -24,
      55
     ],
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/xMidiOffset",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi offset."
  },
  {
   "osc": "/param/xMidiOverlap",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      3
     ],
     "values": {
      "off": 1,
      "overlap": 2,
      "tie": 3
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/xMidiOverlap",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi glide mode: option index, from 1."
  },
  {
   "osc": "/param/xClockNum",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      8
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/xClockNum",
    "args": [
     "{value}"
    ]
   },
   "_notes": "numerator."
  },
  {
   "osc": "/param/xClockDen",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/xClockDen",
    "args": [
     "{value}"
    ]
   },
   "_notes": "denominator."
  },
  {
   "osc": "/param/xSnake",
   "section": "x layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/xSnake",
    "args": [
     "{value}"
    ]
   },
   "_notes": "snake pattern."
  },
  {
   "osc": "/param/yClock",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      4
     ],
     "values": {
      "crow input 1": 1,
      "crow input 2": 2,
      "internal clock": 3,
      "global clock": 4
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/yClock",
    "args": [
     "{value}"
    ]
   },
   "_notes": "clock: option index, from 1."
  },
  {
   "osc": "/param/yResetOnStart",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/yResetOnStart",
    "args": [
     "{value}"
    ]
   },
   "_notes": "reset on start: option index, from 1."
  },
  {
   "osc": "/param/yStep",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      5
     ],
     "values": {
      "crow output 1": 1,
      "crow output 2": 2,
      "crow output 3": 3,
      "crow output 4": 4,
      "none": 5
     },
     "default": 3
    }
   ],
   "forward": {
    "path": "/param/yStep",
    "args": [
     "{value}"
    ]
   },
   "_notes": "step: option index, from 1."
  },
  {
   "osc": "/param/yGate",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      5
     ],
     "values": {
      "crow output 1": 1,
      "crow output 2": 2,
      "crow output 3": 3,
      "crow output 4": 4,
      "none": 5
     },
     "default": 4
    }
   ],
   "forward": {
    "path": "/param/yGate",
    "args": [
     "{value}"
    ]
   },
   "_notes": "gate: option index, from 1."
  },
  {
   "osc": "/param/midiChanY",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/midiChanY",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi channel."
  },
  {
   "osc": "/param/midiVelY",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      127
     ],
     "default": 100
    }
   ],
   "forward": {
    "path": "/param/midiVelY",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi velocity."
  },
  {
   "osc": "/param/yMidiOffset",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      -24,
      55
     ],
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/yMidiOffset",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi offset."
  },
  {
   "osc": "/param/yMidiOverlap",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      3
     ],
     "values": {
      "off": 1,
      "overlap": 2,
      "tie": 3
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/yMidiOverlap",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi glide mode: option index, from 1."
  },
  {
   "osc": "/param/yClockNum",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      8
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/yClockNum",
    "args": [
     "{value}"
    ]
   },
   "_notes": "numerator."
  },
  {
   "osc": "/param/yClockDen",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/yClockDen",
    "args": [
     "{value}"
    ]
   },
   "_notes": "denominator."
  },
  {
   "osc": "/param/ySnake",
   "section": "y layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/ySnake",
    "args": [
     "{value}"
    ]
   },
   "_notes": "snake pattern."
  },
  {
   "osc": "/param/cStep",
   "section": "c layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      5
     ],
     "values": {
      "crow output 1": 1,
      "crow output 2": 2,
      "crow output 3": 3,
      "crow output 4": 4,
      "none": 5
     },
     "default": 5
    }
   ],
   "forward": {
    "path": "/param/cStep",
    "args": [
     "{value}"
    ]
   },
   "_notes": "step: option index, from 1."
  },
  {
   "osc": "/param/cGate",
   "section": "c layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      5
     ],
     "values": {
      "crow output 1": 1,
      "crow output 2": 2,
      "crow output 3": 3,
      "crow output 4": 4,
      "none": 5
     },
     "default": 5
    }
   ],
   "forward": {
    "path": "/param/cGate",
    "args": [
     "{value}"
    ]
   },
   "_notes": "gate: option index, from 1."
  },
  {
   "osc": "/param/midiChanC",
   "section": "c layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 3
    }
   ],
   "forward": {
    "path": "/param/midiChanC",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi channel."
  },
  {
   "osc": "/param/midiVelC",
   "section": "c layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      127
     ],
     "default": 100
    }
   ],
   "forward": {
    "path": "/param/midiVelC",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi velocity."
  },
  {
   "osc": "/param/cMidiOffset",
   "section": "c layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      -24,
      55
     ],
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/cMidiOffset",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi offset."
  },
  {
   "osc": "/param/cMidiOverlap",
   "section": "c layer",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      3
     ],
     "values": {
      "off": 1,
      "overlap": 2,
      "tie": 3
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/cMidiOverlap",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi glide mode: option index, from 1."
  }
 ]
}
