{
 "_sources": [
  {
   "type": "vendor-doc",
   "name": "norns script mosaic",
   "url": "https://github.com/subvertnormality/mosaic/tree/5384d0babb01fd5004bdcd6a95eaa8609aa72915",
   "notes": "norns script mosaic: lib/application_parameters.lua, lib/devices/midi_mapping_params.lua, lib/devices/param_manager.lua, tests/behaviour/test_patch_param_domain.lua, lib/pages/channel_edit_page/channel_edit_parameters.lua, lib/tests/lib/device_map_real_tests.lua, lib/tests/lib/m_clock_mutation_killers_tests.lua, lib/tests/lib/m_clock_tests.lua, lib/tests/lib/step_test.lua, lib/tests/helpers/mocks/params_mock.lua, lib/tests/lib/integration_tests/lock_lookahead_tests.lua, lib/tests/lib/integration_tests/norns_param_lock_tests.lua and more @ 5384d0b. Licence GPL-3.0. Listed in norns.community (monome/norns-community community.json @ 41d05e7).",
   "firmware": "mosaic-5384d0b",
   "imported_at": "2026-10-26"
  }
 ],
 "_limitations": "Source: the Lua source of the norns script mosaic by byzero (subvertnormality/mosaic at 5384d0b), 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 31 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. 34 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 mosaic",
  "commands": 31,
  "subscriptions": 0,
  "replies": 0
 },
 "midi_of": "monome/norns.vendor.fw-2.9.4",
 "device": {
  "name": "norns",
  "vendor": "Monome",
  "revision": "script mosaic (subvertnormality/mosaic @ 5384d0b)",
  "osc_prefix": "/norns_mosaic"
 },
 "commands": [
  {
   "osc": "/param/save_p",
   "section": "MOSAIC",
   "args": [],
   "forward": {
    "path": "/param/save_p",
    "args": [
     1
    ]
   },
   "_notes": "< Save project: trigger."
  },
  {
   "osc": "/param/load_p",
   "section": "MOSAIC",
   "args": [],
   "forward": {
    "path": "/param/load_p",
    "args": [
     1
    ]
   },
   "_notes": "> Load project: trigger."
  },
  {
   "osc": "/param/new",
   "section": "MOSAIC",
   "args": [],
   "forward": {
    "path": "/param/new",
    "args": [
     1
    ]
   },
   "_notes": "+ New: trigger."
  },
  {
   "osc": "/param/global_swing_shuffle_type",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Swing": 1,
      "Shuffle": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/global_swing_shuffle_type",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Global swing type: option index, from 1."
  },
  {
   "osc": "/param/global_swing",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      -50,
      50
     ],
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/global_swing",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Global swing."
  },
  {
   "osc": "/param/global_shuffle_feel",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      4
     ],
     "values": {
      "Drunk": 1,
      "Smooth": 2,
      "Heavy": 3,
      "Clave": 4
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/global_shuffle_feel",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Global shuffle feel: option index, from 1."
  },
  {
   "osc": "/param/global_shuffle_basis",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      6
     ],
     "values": {
      "9": 1,
      "7": 2,
      "5": 3,
      "6": 4,
      "8??": 5,
      "9??": 6
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/global_shuffle_basis",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Global shuffle basis: option index, from 1."
  },
  {
   "osc": "/param/global_shuffle_amount",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      0,
      100
     ],
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/global_shuffle_amount",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Global shuffle amount."
  },
  {
   "osc": "/param/record",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/record",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Record: option index, from 1."
  },
  {
   "osc": "/param/stop_safety",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/stop_safety",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Shift press to stop: option index, from 1."
  },
  {
   "osc": "/param/song_mode",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/song_mode",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Song mode: option index, from 1."
  },
  {
   "osc": "/param/wrap_param_slides",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/wrap_param_slides",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Wrap param slides: option index, from 1."
  },
  {
   "osc": "/param/reset_on_end_of_pattern_repeat",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/reset_on_end_of_pattern_repeat",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Reset on pattern repeat: option index, from 1."
  },
  {
   "osc": "/param/reset_on_song_pattern_transition",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/reset_on_song_pattern_transition",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Reset on song seq change: option index, from 1."
  },
  {
   "osc": "/param/elektron_program_changes",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/elektron_program_changes",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Elektron program changes: option index, from 1."
  },
  {
   "osc": "/param/elektron_program_change_channel",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      16
     ],
     "default": 10
    }
   ],
   "forward": {
    "path": "/param/elektron_program_change_channel",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Elektron p.change channel."
  },
  {
   "osc": "/param/midi_lock_lead_time",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      0,
      50
     ],
     "default": 25
    }
   ],
   "forward": {
    "path": "/param/midi_lock_lead_time",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Lock lead time (ms)."
  },
  {
   "osc": "/param/trigless_locks",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/trigless_locks",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Trigless locks: option index, from 1."
  },
  {
   "osc": "/param/repeat_unchanged_locks",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/repeat_unchanged_locks",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Resend unchanged locks: option index, from 1."
  },
  {
   "osc": "/param/quantiser_act_on_note_masks",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/quantiser_act_on_note_masks",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Snap note masks to scale: option index, from 1."
  },
  {
   "osc": "/param/quantiser_fully_act_on_note_masks",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/quantiser_fully_act_on_note_masks",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Quantise note masks: option index, from 1."
  },
  {
   "osc": "/param/quantiser_trig_lock_hold",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/quantiser_trig_lock_hold",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Scales lock until ptn end: option index, from 1."
  },
  {
   "osc": "/param/all_scales_lock_to_pentatonic",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/all_scales_lock_to_pentatonic",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Lock all to pentatonic: option index, from 1."
  },
  {
   "osc": "/param/random_lock_to_pentatonic",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/random_lock_to_pentatonic",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Lock random to pent.: option index, from 1."
  },
  {
   "osc": "/param/merged_lock_to_pentatonic",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 2
    }
   ],
   "forward": {
    "path": "/param/merged_lock_to_pentatonic",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Lock merged to pent.: option index, from 1."
  },
  {
   "osc": "/param/tresillo_amount",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      8
     ],
     "values": {
      "8": 1,
      "16": 2,
      "24": 3,
      "32": 4,
      "40": 5,
      "48": 6,
      "56": 7,
      "64": 8
     },
     "default": 3
    }
   ],
   "forward": {
    "path": "/param/tresillo_amount",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Tresillo amount: option index, from 1."
  },
  {
   "osc": "/param/midi_scale_mapped_to_white_keys",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_scale_mapped_to_white_keys",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Map scale to white keys: option index, from 1."
  },
  {
   "osc": "/param/midi_honour_rotation",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_honour_rotation",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Honour scale rotations: option index, from 1."
  },
  {
   "osc": "/param/midi_honour_degree",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_honour_degree",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Honour scale degree: option index, from 1."
  },
  {
   "osc": "/param/midi_honour_transpose",
   "section": "MOSAIC",
   "args": [
    {
     "name": "value",
     "type": "int",
     "range": [
      1,
      2
     ],
     "values": {
      "Off": 1,
      "On": 2
     },
     "default": 1
    }
   ],
   "forward": {
    "path": "/param/midi_honour_transpose",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Honour scale transpose: option index, from 1."
  },
  {
   "osc": "/param/sel_ch_memory",
   "section": "MEMORY MIDI MAPS",
   "args": [
    {
     "name": "value",
     "type": "float",
     "default": 0
    }
   ],
   "forward": {
    "path": "/param/sel_ch_memory",
    "args": [
     "{value}"
    ]
   },
   "_notes": "Selected Ch. Memory: -1 to 1."
  }
 ]
}
