Multiple Interfaces
-
Well, this one is pretty much stolen from KONTAKT :) Also I didn't test this for quite some time so let me know if there are any issues (I remember it was pretty hard exposing controls from multiple scripts as plugin parameters)...
-
I haven't done much with it yet but the buttons to switch between the interfaces clash with my interface controls. Would it be possible to offset all interface controls so that they appear below those buttons. I can do this in the script but it seems cleaner if it's built in to HISE and I can just position my controls at 0 on the Y axis without them clashing.
-
Yes, of course. There is also this lousy "Page" label that is masked by the first button, so won't win any design awards in the current state anyway :)
-
I've been thinking about this some more, it would be cool if we could set the position of those change tab buttons and set their images too. This way we won't have to hack a tab changing interface together to match our GUIs like with Kontakt.
-
I am rethinking the purpose of having multiple interface scripts. To be honest, with the ScriptPanel and the ability to use a hierarchy with parent containers it is pretty easy to achieve a multiple window interface within one script and the total freedom of defining your tab buttons:
HiseSnippet 1098.3ocsW0taaaCEkJIpaVatXsnO.p9WN.YNxzsNIMXnsNqoHKKIdyAAEXHniVh1lHRjFTTIKqHOD6MsuAaWpOr7GxIVAX5GFl268Pd3kGp6UckBWZXnPhL9tyucLEY78l8tkqFcvHBiiN5mQFO07DRnhJsSL041wjvPpGxvX8OpMXTYCT7yWeaGhOg6RyMgPWHXtzekEvT4V+y2cLy2+PhG8bVvTQ+p2cjqfefvWDA7YcSGzXh6UjgzSI5vVyDcMidSHxvwrEtg7pl8+622.dX+l5lNW7ZZiFcOtwjmq4iis1oQCjajTR4pK.3HCSi+EdLL+fGSIj8TDEElyM5H7ts2HwMb8R2DcAKj02mlLnGvoDFcDGRECHtzIg5fPGLh460MKUFhfYqadhc8jD6KLOg4wlXOOA+CwNryQLcJ1XsGEMOT36omfkPOion2FIz6Yl8bkrwpbOZt87TqKgcINQq8OOw7.AjY3pFAjqnGJgASxT0a43rkM7yl6W0ppkEbFGprulHs6Oro8OYmgj340kvo90qA1qskcLnM22Z6ss+ieo2YmpC+RqrnCoZpNlJULZHrfA5Pxf9kpV110tg4oFU6M5kdqXCinrgiTfE7NoVXJZPhfKNtVsauSam8ZOuSr1aqc2cu81ocKbUq6Ro0147JeWcLWzet8k1T8ZwN.1gWXmE64A2aY3S1ciIZI8AhfwBN7Gfgwa94IW5TmSuyIyytNQJkfWul1SRdeFxoM+fbKEaB0jDOl3iRQzXMqVjSIy3LTBuTJggosYqBHEdUHEtLjBe4LhS7RDm3hEm3UPbhWMw4hJL77JL7xTX3TEVSmEjX3URhgueIFtPIF9xAQbWESvsE7SEJ5Y75aZ8EqJV2YMumACJxklYRguOUVjWckB48.qNOJnOUtEje7inwwEdCS4NJ0wlUsp.1p3RBo5KruA9udbEXabDODxC19hgLW6QTITHog1UeIkb09v+tKCX7koXnU0ATZ7ZgeNbfF5yg50tN4k30xX+9otwy69ko9eLKL9dW3W9.q7CuvSxHKt5v783y2kDJPi6.EBT5a1BmVqVgS2j6GSEnfeDmoNaLcx3D4clEGzDY8zlxkySaMVFWPX4lVrZMJ8NqtshzvgPUwUseZZ84d9LOpDwfpxeiYrJEEehMcqXnkAN4kswfehoVhlg0znT3vyule8snUlv3BH7hco.8JI7h7IpYafR2HZpC3sByzhhtMDdHSc6zzpDcU4TXWUMK5bZEo6yL6pewTw7csB3Kbv++MeS6Qsp4GFLf5pxI6FlG9oGaCokfJ+tHRw3COgnjr+BDdmFEzC56xkBLgCkcC0hw0zZwjwNYhydTtmSVO8oNapGaj5rYlST.wUJ9rahfT2E72FaA3DO96Kp.enCL1dh7Wy6.n07O65pSD+Hv7hQfKMhVkFwqJMhWWZDsKMhcJMhcuGD5uC58QJQPx0BD5+.qLuud
-
This is a workable solution and I can see how it will allow for more customisation. My only concern is I have four 200-300 line scripts that will need combining, would this amount of code in a single script cause any issues? Most of the code is in the onInit and onControl callbacks.
-
I am currently writing a 2000+ line interface script with includes and everything and things are smooth.
-
Thought I'd share a little example of what I'm working on with multiple-tabs
-
Looks awesome. Are you using the object-tab approach for this?
Also, did you use any images for this interface or is it all vector-based (I suppose the sliders are still filmstrips, but I could add a rotation method and then it would be easy to render sliders like this directly)
-
I used objects to manage the panels and I'm just using the namespaces for each tabs script, with each script stored in a separate file. I'm going to experiment with placing the functions into variables to see if it makes it a little easier to manage, although so far it hasn't been too complex.
There is actually a skin/wallpaper image there that hasn't come out at all in the low res GIF unfortunately. The drop down menu image is actually part of that background image, as is the heading text for each section of controls.
I designed everything in Inkscape, the knobs and sliders were rendered in KnobMan. The dynamic text for things like knob values, the articulation names, and the CC names are all rendered directly in HISE using fonts.
If we could render sliders directly that would be awesome, I haven't spent any time with the drawing functions in HISE but now you've mentioned this I think I'll have to go down that rabbit hole too. :)