{
 "_sources": [
  {
   "type": "vendor-doc",
   "name": "norns script constellations",
   "url": "https://github.com/timothy-taylor/constellations/tree/6643aa3c84ff4b4576a44aa8fcd3da918360380a",
   "notes": "norns script constellations: lib/params.lua @ 6643aa3. No licence declared. Listed in norns.community (monome/norns-community community.json @ 41d05e7).",
   "firmware": "constellations-6643aa3",
   "imported_at": "2026-10-26"
  }
 ],
 "_limitations": "Source: the Lua source of the norns script constellations by toomanatees (timothy-taylor/constellations at 6643aa3), 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 34 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 constellations",
  "commands": 34,
  "subscriptions": 0,
  "replies": 0
 },
 "midi_of": "monome/norns.vendor.fw-2.9.4",
 "device": {
  "name": "norns",
  "vendor": "Monome",
  "revision": "script constellations (timothy-taylor/constellations @ 6643aa3)",
  "osc_prefix": "/norns_constellations"
 },
 "commands": [
  {
   "osc": "/param/cursor_type",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "crosshair": 1,
      "ufo": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/cursor_type",
    "args": [
     "{value}"
    ]
   },
   "_notes": "type: option index, from 1."
  },
  {
   "osc": "/param/targeting",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/targeting",
    "args": [
     "{value}"
    ]
   },
   "_notes": "targeting: option index, from 1."
  },
  {
   "osc": "/param/crosshair_size",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      25
     ],
     "default": 3
    }
   ],
   "forward": {
    "path": "/param/crosshair_size",
    "args": [
     "{value}"
    ]
   },
   "_notes": "targeting size."
  },
  {
   "osc": "/param/autopilot",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/autopilot",
    "args": [
     "{value}"
    ]
   },
   "_notes": "autopilot: option index, from 1."
  },
  {
   "osc": "/param/autopilot_shape",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "classical": 1,
      "quantum": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/autopilot_shape",
    "args": [
     "{value}"
    ]
   },
   "_notes": "autopilot type: option index, from 1."
  },
  {
   "osc": "/param/autopilot_depth",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 1.0
    }
   ],
   "forward": {
    "path": "/param/autopilot_depth",
    "args": [
     "{value}"
    ]
   },
   "_notes": "autopilot depth: 0 to 1."
  },
  {
   "osc": "/param/y_axis",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      0,
      63
     ],
     "default": 32
    }
   ],
   "forward": {
    "path": "/param/y_axis",
    "args": [
     "{value}"
    ]
   },
   "_notes": "y axis."
  },
  {
   "osc": "/param/x_axis",
   "section": "navigation",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      0,
      127
     ],
     "default": 64
    }
   ],
   "forward": {
    "path": "/param/x_axis",
    "args": [
     "{value}"
    ]
   },
   "_notes": "x axis."
  },
  {
   "osc": "/param/star_density",
   "section": "starfield",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      100
     ],
     "default": 15
    }
   ],
   "forward": {
    "path": "/param/star_density",
    "args": [
     "{value}"
    ]
   },
   "_notes": "constellation density."
  },
  {
   "osc": "/param/star_size",
   "section": "starfield",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      100
     ],
     "default": 50
    }
   ],
   "forward": {
    "path": "/param/star_size",
    "args": [
     "{value}"
    ]
   },
   "_notes": "star magnitude."
  },
  {
   "osc": "/param/star_movement",
   "section": "starfield",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 1.0
    }
   ],
   "forward": {
    "path": "/param/star_movement",
    "args": [
     "{value}"
    ]
   },
   "_notes": "drift velocity: 0.1 to 2 x."
  },
  {
   "osc": "/param/star_twinkle",
   "section": "starfield",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.5
    }
   ],
   "forward": {
    "path": "/param/star_twinkle",
    "args": [
     "{value}"
    ]
   },
   "_notes": "luminosity flux: 0 to 1."
  },
  {
   "osc": "/param/amp",
   "section": "internal synth",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.7
    }
   ],
   "forward": {
    "path": "/param/amp",
    "args": [
     "{value}"
    ]
   },
   "_notes": "amplitude: 0 to 1."
  },
  {
   "osc": "/param/release",
   "section": "internal synth",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 2.0
    }
   ],
   "forward": {
    "path": "/param/release",
    "args": [
     "{value}"
    ]
   },
   "_notes": "release: 0.1 to 3.2 s."
  },
  {
   "osc": "/param/cutoff",
   "section": "internal synth",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 800
    }
   ],
   "forward": {
    "path": "/param/cutoff",
    "args": [
     "{value}"
    ]
   },
   "_notes": "cutoff: 50 to 5000 hz."
  },
  {
   "osc": "/param/pulsewidth",
   "section": "internal synth",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 50
    }
   ],
   "forward": {
    "path": "/param/pulsewidth",
    "args": [
     "{value}"
    ]
   },
   "_notes": "pulsewidth: 0 to 100 %."
  },
  {
   "osc": "/param/gain",
   "section": "internal synth",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/gain",
    "args": [
     "{value}"
    ]
   },
   "_notes": "gain: 0 to 4."
  },
  {
   "osc": "/param/pan",
   "section": "internal synth",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/pan",
    "args": [
     "{value}"
    ]
   },
   "_notes": "pan: -1 to 1."
  },
  {
   "osc": "/param/reset",
   "section": "temporal",
   "args": [],
   "forward": {
    "path": "/param/reset",
    "args": [
     1
    ]
   },
   "_notes": "reset: trigger."
  },
  {
   "osc": "/param/sequencer_mode",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "beat-sync": 1,
      "time-sync": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/sequencer_mode",
    "args": [
     "{value}"
    ]
   },
   "_notes": "mode: option index, from 1."
  },
  {
   "osc": "/param/clock_div",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "int",
     "default": 6
    }
   ],
   "forward": {
    "path": "/param/clock_div",
    "args": [
     "{value}"
    ]
   },
   "_notes": "clock division: option index, from 1."
  },
  {
   "osc": "/param/swing",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 50
    }
   ],
   "forward": {
    "path": "/param/swing",
    "args": [
     "{value}"
    ]
   },
   "_notes": "swing: 0 to 100 %."
  },
  {
   "osc": "/param/note_length",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      4
     ],
     "values": {
      "25%": 1,
      "50%": 2,
      "75%": 3,
      "100%": 4
     },
     "default": 4
    }
   ],
   "forward": {
    "path": "/param/note_length",
    "args": [
     "{value}"
    ]
   },
   "_notes": "note length: option index, from 1."
  },
  {
   "osc": "/param/min_size",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      127
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/min_size",
    "args": [
     "{value}"
    ]
   },
   "_notes": "min sequence."
  },
  {
   "osc": "/param/max_size",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      1500
     ],
     "default": 8
    }
   ],
   "forward": {
    "path": "/param/max_size",
    "args": [
     "{value}"
    ]
   },
   "_notes": "max sequence."
  },
  {
   "osc": "/param/overwrite_logic",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      3
     ],
     "values": {
      "low to high": 1,
      "random": 2,
      "none": 3
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/overwrite_logic",
    "args": [
     "{value}"
    ]
   },
   "_notes": "collision logic: option index, from 1."
  },
  {
   "osc": "/param/probability",
   "section": "temporal",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      0,
      100
     ],
     "default": 100
    }
   ],
   "forward": {
    "path": "/param/probability",
    "args": [
     "{value}"
    ]
   },
   "_notes": "probability."
  },
  {
   "osc": "/param/scale_mode",
   "section": "harmonic",
   "args": [
    {
     "name": "value",
     "type": "int",
     "default": 5
    }
   ],
   "forward": {
    "path": "/param/scale_mode",
    "args": [
     "{value}"
    ]
   },
   "_notes": "scale mode: option index, from 1."
  },
  {
   "osc": "/param/root_note",
   "section": "harmonic",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      0,
      127
     ],
     "default": 48
    }
   ],
   "forward": {
    "path": "/param/root_note",
    "args": [
     "{value}"
    ]
   },
   "_notes": "root note."
  },
  {
   "osc": "/param/output",
   "section": "i/o",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      4
     ],
     "values": {
      "audio": 1,
      "audio + midi": 2,
      "midi": 3,
      "crow ii JF": 4
     }
    }
   ],
   "forward": {
    "path": "/param/output",
    "args": [
     "{value}"
    ]
   },
   "_notes": "output: option index, from 1."
  },
  {
   "osc": "/param/midi_device",
   "section": "i/o",
   "args": [
    {
     "name": "value",
     "type": "int",
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_device",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi out device: option index, from 1."
  },
  {
   "osc": "/param/midi_channel",
   "section": "i/o",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_channel",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi out channel."
  },
  {
   "osc": "/param/crow_output",
   "section": "i/o",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     }
    }
   ],
   "forward": {
    "path": "/param/crow_output",
    "args": [
     "{value}"
    ]
   },
   "_notes": "crow output: option index, from 1."
  },
  {
   "osc": "/param/crow_input",
   "section": "i/o",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     }
    }
   ],
   "forward": {
    "path": "/param/crow_input",
    "args": [
     "{value}"
    ]
   },
   "_notes": "crow input[2] => y axis: option index, from 1."
  }
 ]
}
