{
 "_sources": [
  {
   "type": "vendor-doc",
   "name": "norns script bitters",
   "url": "https://github.com/ryleelyman/bitters/tree/e94dca0217429177fff3b9959f0f304578df26a2",
   "notes": "norns script bitters: lib/bitters_engine.lua, lib/halfsecond.lua @ e94dca0. Licence MIT. Listed in norns.community (monome/norns-community community.json @ 41d05e7).",
   "firmware": "bitters-e94dca0",
   "imported_at": "2026-10-26"
  }
 ],
 "_limitations": "Source: the Lua source of the norns script bitters by alanza (ryleelyman/bitters at e94dca0), 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 36 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. 13 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 bitters",
  "commands": 36,
  "subscriptions": 0,
  "replies": 0
 },
 "midi_of": "monome/norns.vendor.fw-2.9.4",
 "device": {
  "name": "norns",
  "vendor": "Monome",
  "revision": "script bitters (ryleelyman/bitters @ e94dca0)",
  "osc_prefix": "/norns_bitters"
 },
 "commands": [
  {
   "osc": "/param/amp",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.5
    }
   ],
   "forward": {
    "path": "/param/amp",
    "args": [
     "{value}"
    ]
   },
   "_notes": "volume: 0 to 1."
  },
  {
   "osc": "/param/degrade",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/degrade",
    "args": [
     "{value}"
    ]
   },
   "_notes": "degrade: 0 to 1."
  },
  {
   "osc": "/param/mix",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/mix",
    "args": [
     "{value}"
    ]
   },
   "_notes": "osc mix: -1 to 1."
  },
  {
   "osc": "/param/mpitch",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/mpitch",
    "args": [
     "{value}"
    ]
   },
   "_notes": "env > pitch: 0 to 1."
  },
  {
   "osc": "/param/lpitch",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/lpitch",
    "args": [
     "{value}"
    ]
   },
   "_notes": "lfo > pitch: 0 to 1."
  },
  {
   "osc": "/param/sync",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "off": 1,
      "on": 2
     }
    }
   ],
   "forward": {
    "path": "/param/sync",
    "args": [
     "{value}"
    ]
   },
   "_notes": "sync: option index, from 1."
  },
  {
   "osc": "/param/hipass",
   "section": "highpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 10
    }
   ],
   "forward": {
    "path": "/param/hipass",
    "args": [
     "{value}"
    ]
   },
   "_notes": "cutoff: 0.01 to 20000."
  },
  {
   "osc": "/param/mhipass",
   "section": "highpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/mhipass",
    "args": [
     "{value}"
    ]
   },
   "_notes": "env > cutoff: 0 to 1."
  },
  {
   "osc": "/param/lhipass",
   "section": "highpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/lhipass",
    "args": [
     "{value}"
    ]
   },
   "_notes": "lfo > cutoff: 0 to 1."
  },
  {
   "osc": "/param/hires",
   "section": "highpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/hires",
    "args": [
     "{value}"
    ]
   },
   "_notes": "resonance: 0 to 1."
  },
  {
   "osc": "/param/mhires",
   "section": "highpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/mhires",
    "args": [
     "{value}"
    ]
   },
   "_notes": "env > res: 0 to 1."
  },
  {
   "osc": "/param/lhires",
   "section": "highpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/lhires",
    "args": [
     "{value}"
    ]
   },
   "_notes": "lfo > res: 0 to 1."
  },
  {
   "osc": "/param/lopass",
   "section": "lowpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 20000
    }
   ],
   "forward": {
    "path": "/param/lopass",
    "args": [
     "{value}"
    ]
   },
   "_notes": "cutoff: 0.01 to 20000."
  },
  {
   "osc": "/param/mlopass",
   "section": "lowpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/mlopass",
    "args": [
     "{value}"
    ]
   },
   "_notes": "env > cutoff: 0 to 1."
  },
  {
   "osc": "/param/llopass",
   "section": "lowpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/llopass",
    "args": [
     "{value}"
    ]
   },
   "_notes": "lfo > cutoff: 0 to 1."
  },
  {
   "osc": "/param/lores",
   "section": "lowpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/lores",
    "args": [
     "{value}"
    ]
   },
   "_notes": "resonance: 0 to 1."
  },
  {
   "osc": "/param/mlores",
   "section": "lowpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/mlores",
    "args": [
     "{value}"
    ]
   },
   "_notes": "env > res: 0 to 1."
  },
  {
   "osc": "/param/llores",
   "section": "lowpass",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/llores",
    "args": [
     "{value}"
    ]
   },
   "_notes": "lfo > res: 0 to 1."
  },
  {
   "osc": "/param/attack",
   "section": "amp env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.0015
    }
   ],
   "forward": {
    "path": "/param/attack",
    "args": [
     "{value}"
    ]
   },
   "_notes": "attack: 0.01 to 10."
  },
  {
   "osc": "/param/decay",
   "section": "amp env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.8
    }
   ],
   "forward": {
    "path": "/param/decay",
    "args": [
     "{value}"
    ]
   },
   "_notes": "decay: 0.01 to 10."
  },
  {
   "osc": "/param/sustain",
   "section": "amp env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/sustain",
    "args": [
     "{value}"
    ]
   },
   "_notes": "sustain: 0 to 1."
  },
  {
   "osc": "/param/release",
   "section": "amp env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.131
    }
   ],
   "forward": {
    "path": "/param/release",
    "args": [
     "{value}"
    ]
   },
   "_notes": "release: 0.01 to 10."
  },
  {
   "osc": "/param/mattack",
   "section": "mod env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.0015
    }
   ],
   "forward": {
    "path": "/param/mattack",
    "args": [
     "{value}"
    ]
   },
   "_notes": "attack: 0.01 to 10."
  },
  {
   "osc": "/param/mdecay",
   "section": "mod env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.8
    }
   ],
   "forward": {
    "path": "/param/mdecay",
    "args": [
     "{value}"
    ]
   },
   "_notes": "decay: 0.01 to 10."
  },
  {
   "osc": "/param/msustain",
   "section": "mod env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/msustain",
    "args": [
     "{value}"
    ]
   },
   "_notes": "sustain: 0 to 1."
  },
  {
   "osc": "/param/mrelease",
   "section": "mod env",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.131
    }
   ],
   "forward": {
    "path": "/param/mrelease",
    "args": [
     "{value}"
    ]
   },
   "_notes": "release: 0.01 to 10."
  },
  {
   "osc": "/param/lfreq",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 4
    }
   ],
   "forward": {
    "path": "/param/lfreq",
    "args": [
     "{value}"
    ]
   },
   "_notes": "lfo frequency: 0.001 to 10 hz."
  },
  {
   "osc": "/param/lfade",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/lfade",
    "args": [
     "{value}"
    ]
   },
   "_notes": "lfo fade in: 0.01 to 10."
  },
  {
   "osc": "/param/max_polyphony",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 10
    }
   ],
   "forward": {
    "path": "/param/max_polyphony",
    "args": [
     "{value}"
    ]
   },
   "_notes": "max polyphony: 0 to 100."
  },
  {
   "osc": "/param/pedal_mode",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "sustain": 1,
      "sostenuto": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/pedal_mode",
    "args": [
     "{value}"
    ]
   },
   "_notes": "pedal mode: option index, from 1."
  },
  {
   "osc": "/param/midi",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      1
     ],
     "values": {
      "none": 1
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi in: option index, from 1."
  },
  {
   "osc": "/param/midichannel",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      1
     ],
     "values": {
      "all": 1
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midichannel",
    "args": [
     "{value}"
    ]
   },
   "_notes": "midi ch: option index, from 1."
  },
  {
   "osc": "/param/delay",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.15
    }
   ],
   "forward": {
    "path": "/param/delay",
    "args": [
     "{value}"
    ]
   },
   "_notes": "delay: 0 to 1."
  },
  {
   "osc": "/param/delay_rate",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/delay_rate",
    "args": [
     "{value}"
    ]
   },
   "_notes": "delay rate: 0.5 to 2."
  },
  {
   "osc": "/param/delay_feedback",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0.75
    }
   ],
   "forward": {
    "path": "/param/delay_feedback",
    "args": [
     "{value}"
    ]
   },
   "_notes": "delay feedback: 0 to 1."
  },
  {
   "osc": "/param/delay_pan",
   "section": "Parameters",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/delay_pan",
    "args": [
     "{value}"
    ]
   },
   "_notes": "delay pan: -1 to 1."
  }
 ]
}
