1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

GUI Generator

Discussion in 'Scripting Workshop' started by kb123, Aug 21, 2010.

Thread Status:
Not open for further replies.
  1. kb123

    kb123 NI Product Owner

    Messages:
    1,255
    Hi All

    I've written an application that will generate kontakt performance views from screen templates that you can design and save.

    The application is written in Flash and runs under Adobe Air so it will run on Mac and PC platforms.

    I've written a brief user manual for it here View attachment GUI Generator.pdf

    The application can be downloaded from here

    Have fun!

    Ken
     
  2. Chrisboy

    Chrisboy New Member

    Messages:
    19
    Awesome!

    I do have some ideas for further improvement:

    General:

    - Display the individual UI names (like "element1") instead of the UI-category in the main panel (you can recognize the UI-type by the color code, so it is a little bit redudant)

    - Maybe you can add checkboxes for switching the persistence state, hiding parts of individual ui_elements just like you did it with the "custom skin" checkbox.

    - if you hide for example some UI_knob parts, the size of the placeholder should be updated.


    Multipage-Performance views:

    - add a checkbox to hide the controls (Positioning to 0,0 doesn't work). Maybe combine it with a list of all ui_elements (maybe on the right side of the main panel), so you won't lose track of the hidden ones.

    - collect all move_control commands in one paragraph, instead of doing it after each declaration.

    With those two features, you can manually copy the move_control paragraph into a ui_callback and change it to create the possibility of multipage-performance views.

    Minor improvements:

    - deactivate the scaling of the main display, so that is always has the original width of 633 pixels.

    - change the font of the compiled code to a fixed-with font like courier.


    But again, it is a great start and I am looking forward to your further developments!
     
  3. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    Further ideas for updates:

    * allow direct text editing of ui_control callbacks by double-clicking the control. Clicking the background shows and edits init callback

    * easy linking of controls with engine and control parameters - show a mockup of Kontakt's interface, and allow "adding" effects, internal and external modulators like in Kontakt, then freeze the state, and allow clicking on the FX control or modulation amount, which will then create a correct string in the ui_control callback linking with correct get_engine_par string. Also only show FX controls which CAN be approached to with KSP, dim the others.

    * additional to above - show different modes of Kontakt interface: K2, K3(.5), K4, and limit the available modules to those only available in currently selected interface mode

    * indeed, some sort of Properties window per control could be introduced, with settings for width, height, grid and pixel positions (mutually exclusive, but both visible at the same time), hide status, persistence, default value, unit value, min and max range, stepping, etc. Properties window would be different for each type of control, since each has its own parameters, and some are exclusive to a particular control type

    * Flash or Java based rather than Air? I don't have this Air thing, and I bet a lot of other people doesn't as well. What was the decision to make it with Air rather than Flash or Java?


    All in all, good start ;)
     
  4. kb123

    kb123 NI Product Owner

    Messages:
    1,255
    Thanks for the feedback.

    I thought I would test the water before taking it further to see if it was going to be useful, from the comments, it seems like it could be!

    My vision for it is to extend it to link controls to the various engine parameters as mentioned above, but also to allow "script modules" to be inserted with control points exposed in those modules that can then be linked to UI elements. This should allow maximum creativity without the need for detailed programming knowledge.

    Keep the comments coming, after about a week I will collect them all up and start work on the next release.

    The reason I chose the flash/air route is that air exposes the native computer environment where flash on its own doesn't.
     
  5. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    Do you find my idea with having actual mockups of K2/3/4 interfaces usable enough? You do know you're gonna have to mock up everything, the possibility to add and name groups, set group start options, add Group/Insert/Send FX, add modulators to whatever, etc?

    Essentially, the above mentioned Properties window should contain several fields for modulators: type, name (to approach with find_mod()), ID (I guess the ID is given in order of creation of modulator), invert, mod amount, lag.

    This could be a really good time saver!
     
  6. kb123

    kb123 NI Product Owner

    Messages:
    1,255
    Yes ,its a question of what works best pulling it all together :cool:

    Like all these things its one step at a time, concentrating on the most used first and expanding from there

    I really hope this takes all the tedious tasks out of script writing
     
  7. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    I really hope this doesn't leave us scripters without a job! :eek:
     
  8. Chrisboy

    Chrisboy New Member

    Messages:
    19
    I totally like the idea of assigning the different modulators automatically since it is one huge PITA of getting the right number manually (even with the new find_mod command).

    But I would not try to completely substitute the programming part. I think of your tool as an excellent addition to others like the KSP-Editor and I would concentrate on getting the best workflow with the combination of those.
     
  9. kb123

    kb123 NI Product Owner

    Messages:
    1,255
    It should allow everyone to concentrate on programming the "interesting" stuff
     
  10. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    Oh, having the option to parse the code in init callback in two different ways would be cool.

    Way #1: all the declarations related to a particular UI control is in one "paragraph"

    Way #2: all the TYPES of declarations are in one "paragraph". So, all declare ui_buttons would be grouped, then all declare ui_knobs would be grouped, then all set_knob_defvals would be grouped, all move_controls grouped, etc. etc.
     
  11. jobro

    jobro Forum Member

    Messages:
    119
    Pretty intense tool. Good for beginners who want to get a basic GUI going.
     
  12. kb123

    kb123 NI Product Owner

    Messages:
    1,255
    The latest version of the generator has many enhancements over the original. The latest version can be downloaded for free from http://www.musikbits.com/
     
  13. jobro

    jobro Forum Member

    Messages:
    119
    Definitly starts to get even better!

    I noticed a bug when I tried to install the latest version. It refused due to there is allready a version installed in the current directory. You might want to add an uninstaller.

    As for an idea I have: Why not let the user paste the UI script from Kontakt? This would make this even more versatile since I start in the GUI generator, but tweak the scripts inside Kontakt. A .ksp loader would definitly be hot here.

    Any plans on ways to replace the stock knobs / buttons in Kontakt?

    I can clearly see me doing a donation in the future the way this turns out to be.
     
  14. kb123

    kb123 NI Product Owner

    Messages:
    1,255
    You can add to or override the generated call backs from within the generator so you can already paste in your own code :)

    If you are targetting to Kontakt 4.1 you can select the custom skin option for each control and that allows you to override the standard control skins.
     
Thread Status:
Not open for further replies.