{
 "_sources": [
  {
   "type": "vendor-doc",
   "name": "norns script KoiBoi2",
   "url": "https://github.com/Dillbo/KoiBoi2/tree/febc0149f5bf313680ee7618ad53c5fb5e29d85a",
   "notes": "norns script KoiBoi2: KoiBoi2.lua @ febc014. No licence declared. Listed in norns.community (monome/norns-community community.json @ 41d05e7).",
   "firmware": "koiboi2-febc014",
   "imported_at": "2026-10-26"
  }
 ],
 "_limitations": "Source: the Lua source of the norns script KoiBoi2 by dillbo (Dillbo/KoiBoi2 at febc014), 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 KoiBoi2",
  "commands": 30,
  "subscriptions": 0,
  "replies": 0
 },
 "midi_of": "monome/norns.vendor.fw-2.9.4",
 "device": {
  "name": "norns",
  "vendor": "Monome",
  "revision": "script KoiBoi2 (Dillbo/KoiBoi2 @ febc014)",
  "osc_prefix": "/norns_koiboi2"
 },
 "commands": [
  {
   "osc": "/param/scale",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      11
     ],
     "values": {
      "major": 1,
      "minor": 2,
      "dorian": 3,
      "phrygian": 4,
      "lydian": 5,
      "mixolydian": 6,
      "locrian": 7,
      "minor pentatonic": 8,
      "major pentatonic": 9,
      "blues": 10,
      "chromatic": 11
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/scale",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Scale: option index, from 1."
  },
  {
   "osc": "/param/root_note",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      0,
      11
     ],
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/root_note",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Root Note."
  },
  {
   "osc": "/param/octave",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      2,
      6
     ],
     "default": 5
    }
   ],
   "forward": {
    "path": "/param/octave",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Octave."
  },
  {
   "osc": "/param/tempo",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 120
    }
   ],
   "forward": {
    "path": "/param/tempo",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Tempo: 60 to 200."
  },
  {
   "osc": "/param/pitch_mode",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Linear": 1,
      "Scale": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/pitch_mode",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Pitch Mode: option index, from 1."
  },
  {
   "osc": "/param/num_koi",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      8
     ],
     "default": 4
    }
   ],
   "forward": {
    "path": "/param/num_koi",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Number of Koi."
  },
  {
   "osc": "/param/global_speed",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 1.0
    }
   ],
   "forward": {
    "path": "/param/global_speed",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Global Speed: 0.1 to 4."
  },
  {
   "osc": "/param/cutoff",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 800
    }
   ],
   "forward": {
    "path": "/param/cutoff",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Cutoff: 50 to 5000."
  },
  {
   "osc": "/param/release",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.3
    }
   ],
   "forward": {
    "path": "/param/release",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Release: 0.1 to 5."
  },
  {
   "osc": "/param/amp",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.5
    }
   ],
   "forward": {
    "path": "/param/amp",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Amplitude: 0 to 1."
  },
  {
   "osc": "/param/delay_division",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      11
     ],
     "values": {
      "1/32": 1,
      "1/16": 2,
      "1/8": 3,
      "1/8.": 4,
      "1/4": 5,
      "1/4.": 6,
      "1/2": 7,
      "1/2.": 8,
      "1/1": 9,
      "2/1": 10,
      "4/1": 11
     },
     "default": 6
    }
   ],
   "forward": {
    "path": "/param/delay_division",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Delay Division: option index, from 1."
  },
  {
   "osc": "/param/delay_feedback",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.45
    }
   ],
   "forward": {
    "path": "/param/delay_feedback",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Delay Feedback: 0 to 0.95."
  },
  {
   "osc": "/param/delay_mix",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.4
    }
   ],
   "forward": {
    "path": "/param/delay_mix",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Delay Mix: 0 to 1."
  },
  {
   "osc": "/param/feedback_lfo_rate",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.0
    }
   ],
   "forward": {
    "path": "/param/feedback_lfo_rate",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Feedback LFO Rate: 0.1 to 2."
  },
  {
   "osc": "/param/feedback_lfo_depth",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.2
    }
   ],
   "forward": {
    "path": "/param/feedback_lfo_depth",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Feedback LFO Depth: 0 to 0.5."
  },
  {
   "osc": "/param/delay_filter_cutoff",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 2000
    }
   ],
   "forward": {
    "path": "/param/delay_filter_cutoff",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Delay Filter Cutoff: 200 to 8000."
  },
  {
   "osc": "/param/delay_filter_q",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.5
    }
   ],
   "forward": {
    "path": "/param/delay_filter_q",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Delay Filter Q: 0.1 to 2."
  },
  {
   "osc": "/param/delay_reverse",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/delay_reverse",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Delay Reverse: option index, from 1."
  },
  {
   "osc": "/param/delay_overdub",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/delay_overdub",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Delay Overdub: option index, from 1."
  },
  {
   "osc": "/param/drone_amp",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.3
    }
   ],
   "forward": {
    "path": "/param/drone_amp",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Drone Amplitude: 0 to 0.3."
  },
  {
   "osc": "/param/drone_fade_chance",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.25
    }
   ],
   "forward": {
    "path": "/param/drone_fade_chance",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Drone Fade Chance: 0 to 1."
  },
  {
   "osc": "/param/drone_buffer_bars",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      8
     ],
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/drone_buffer_bars",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Drone Buffer Bars."
  },
  {
   "osc": "/param/drone_buffer_notes",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 8
    }
   ],
   "forward": {
    "path": "/param/drone_buffer_notes",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Drone Buffer Notes."
  },
  {
   "osc": "/param/drone_cutoff",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 200
    }
   ],
   "forward": {
    "path": "/param/drone_cutoff",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Drone Cutoff: 50 to 500."
  },
  {
   "osc": "/param/midi_in_device",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      4
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_in_device",
    "args": [
     "{value}"
    ]
   },
   "_notes": "MIDI In Device."
  },
  {
   "osc": "/param/midi_out_device",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      4
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_out_device",
    "args": [
     "{value}"
    ]
   },
   "_notes": "MIDI Out Device."
  },
  {
   "osc": "/param/midi_food_channel",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_food_channel",
    "args": [
     "{value}"
    ]
   },
   "_notes": "MIDI Food Channel."
  },
  {
   "osc": "/param/midi_drone_channel",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/midi_drone_channel",
    "args": [
     "{value}"
    ]
   },
   "_notes": "MIDI Drone Channel."
  },
  {
   "osc": "/param/midi_input_enable",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/midi_input_enable",
    "args": [
     "{value}"
    ]
   },
   "_notes": "MIDI Input: option index, from 1."
  },
  {
   "osc": "/param/midi_output_enable",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_output_enable",
    "args": [
     "{value}"
    ]
   },
   "_notes": "MIDI Output: option index, from 1."
  }
 ]
}
