FR: Mouse scripting API or multisliders

  • There is a need for multisliders such as X/Y pads, dual sliders (sliders with two knobs for range values). It would be possible to create these things in scripting if there was a way to get mouse values and do mouse callbacks:

    -Mouse position
    -Mouse button & modifiers
    -On click
    -On drag

    This way the scripter has the option to leverage multiple sliders to create a single multislider.

    Another solution to this problem would be to build HISE with skinnable multisliders. Here are the multisliders from the JUCE demo to provide inspriation:

    It would be difficult to create various behaviors (e.g. should one slider stop the other or should one push the other?) without a fuller scripting API or more knob parameters.

  • I think I will rather add more custom widgets than adding callbacks for the mouse events.

    I know of course the JUCE multi sliders and probably I am going from there with some custom Look and Feel - I try to make it as generic as possible (kind of like the table editor style).

    XY Pad is also a reasonable request.

  • Having pre-defined control types that address most all situations is fine, but would there be any way to have a custom type that gives developers access to drag x/y, click, hover, etc.? That way if they want to make something really specific that isn't possible through the existing control types they can always use the custom one?

  • Another option, Greg and Christoph, might be to specify specific slider creation C++ API, as this is one of the reasons that HISE is open source, to do stuff like this. There's already an API for creating modules.

  • @4e0ow41c:

    to specify specific slider creation C++ API, as this is one of the reasons that HISE is open source

    Yes, this is exactly what I am planning. If you really need something special, you simply create your own component with JUCE and C++ (and with the right tutorials this is not much harder than in Javascript) and write some boilerplate code that adds the widget to the Scripting API.

  • Ah yeah, that's a good approach.

Log in to reply