Feature request: "Multi Scripted Dial" (Multi Midi multiplexing with Scripted Dial items)

First, thanks for the plugin — the depth of the dial actions is fantastic. Two actions I lean on a lot:

  • Multi Midi lets me pack up to 4 functions onto one physical dial, with the nice selection UX (tap to select, press/rotate to cycle, timer delay) and rendering options (fader / V-Pot, side-by-side or jagged, highlight via frame / corners / arrows / bars / dimming). Great for saving scarce dials on the Stream Deck+.
  • Scripted Dial gives full flexibility on a single dial: JavaScript / MidiScript on rotate / press / release / tap, custom screen areas, computed title & image, arbitrary MIDI out, variables, and changing almost any config parameter at runtime.

The problem: these two strengths are mutually exclusive today. Multi Midi multiplexes 4 items on one dial, but each item is limited to a Generic Midi function — no scripting, no computed feedback, no custom logic. Scripted Dial is fully scriptable, but only drives one function per dial. So exactly when I most want to save dials (several scripted behaviours on one), I have to give up either the multiplexing or the scripting.

The request — a “Multi Scripted Dial” action: keep the whole Multi Midi container (up to 4 items sharing the display, the same selection model, timer-delay and highlight/rendering options) but let each item be a Scripted Dial instead of a Generic Midi function. Net effect: up to 4 independently scripted functions on a single physical dial, each with its own rotate / press / release / tap scripts and its own rendering.

Example — on one physical dial:

  • Item 1 — DAW send level: CC out with a custom-drawn V-Pot and a title computed from the incoming feedback value.
  • Item 2 — a JS macro sequence on press, with a state toggle shown as a computed image.
  • Item 3 — an accelerated relative-encoder handler that Generic Midi can’t express.
  • Item 4 — a value read from a custom variable, rendered as a bar and updated by incoming MIDI.

Nice-to-haves:

  • Per-item scripts exposing the same hooks as a standalone Scripted Dial (rotate / press / release / tap, plus on-MIDI and on-variable-changed).
  • Shared custom variables across the items in the same Multi dial (so one item can reflect another’s state).
  • A script hook to change the currently active item (e.g. setActiveItem(n)), so context can drive which item is focused.
  • Per-item computed title & image, reusing the Scripted Dial rendering for each sub-area.
  • Reuse the existing Multi Midi selection / timer / highlight config verbatim, so it feels like the same action with a scripted item type.

Even a first version limited to “each Multi item = a Scripted Dial, sharing the Multi selection/rendering” would already be a big flexibility win over Multi Midi. Thanks for considering it!

Yes, I know. This is a request I have had before.

The multi-dial is controlled by nearly 500 properties, and managing that in the plugin is a nightmare. Extending the plugin to co-manage these 500 properties with a script is something I will most likely not even try. Sorry. :slightly_frowning_face:

Makes total sense – 500 properties is a real maintenance minefield, and I’d much rather you protect the plugin’s stability than pour time into that. Thanks for taking the time to explain the why; I completely understand, and I’m glad I asked. Appreciate the plugin exactly as it is! :pray: