HISE Logo Forum
    • Categories
    • Register
    • Login

    Question about UI Json data!

    Scheduled Pinned Locked Moved General Questions
    40 Posts 4 Posters 7.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • alexaudio10A
      alexaudio10
      last edited by

      Hello,

      Well, a few questions. First, as of 2017-12-16, I have the latest version of Hise, compile from GitHub!

      I would like to learn more about the new version of hisaudio, and more specifically about the section UI Json ...

      When I create a new widget, it is not automatically in the scripts! Is it normal ? If I save and then reopen the project, all the parameters are there.

      On the other hand, if I open the preset file with wordpad, all the parameters are there. Or are they going to wait in the script?

      Then, if I modify the script directly from the UI Json, I have a message of warning, then I click on ok and sometimes when I fix on the widget, my parameters are then. In short, if I use the container proprieter no problem, but as soon as I use the script (90%) time, there is a problem.

      Thank you

      1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart
        last edited by

        Yes an explanation of this system is overdue. I‘ll write a small tutorial today.

        1 Reply Last reply Reply Quote 1
        • staiffS
          staiff
          last edited by

          "but as soon as I use the script (90%) time, there is a problem" ...

          not shure it was the same problem for me but....

          yes, if you modify something in the UIJSON, you have a warning and somes scripts (like external .js, personnal keboard, etc. ...) are in trouble.

          But just after that you'll have to click "rebuild" or "recompile" in the interface area and all your previous settings comes back.

          That's a habit to take

          Excuse me i'm French.

          1 Reply Last reply Reply Quote 0
          • alexaudio10A
            alexaudio10
            last edited by

            Thanks for answering. In fact I recompile as soon as I make a change ... but it does not always work!

            What would really really be good is that when you script directly into the main compiler, the UI Json totally ignores and inscribes no give. It would allow to have both ways. In addition to that, it would make everything compatible.

            1 Reply Last reply Reply Quote 1
            • Christoph HartC
              Christoph Hart
              last edited by

              Rebuilding != Recompiling. Stay tuned for a 10 page explanation of this difference :)

              1 Reply Last reply Reply Quote 1
              • Christoph HartC
                Christoph Hart
                last edited by

                Alright, here we go:

                Link Preview Image
                File not found · christophhart/hise_documentation

                The markdown files for the online documentation. Contribute to christophhart/hise_documentation development by creating an account on GitHub.

                favicon

                GitHub (github.com)

                I tried to cover all new features as well as an in-depth explanation of the behind-the scenes model. Let me know if something's unclear or missing.

                1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey
                  last edited by

                  Thanks Christoph. I've had a read through the whole document and will play around with it tomorrow/today. A couple of things come to mind though. Since there is only one UI JSON per script is it still possible to split the interface between multiple scripts? Now that the UI stuff is stored as an XML sub element is it possible to have the preset browser restore the controls for scripts other than the front interface?

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  1 Reply Last reply Reply Quote 0
                  • d.healeyD
                    d.healey
                    last edited by d.healey

                    For the replace add widget with get component function to work the widget variable and ID must be the same otherwise this happens:
                    0_1513515071733_Screenshot from 2017-12-17 12-46-32.png

                    Libre Wave - Freedom respecting instruments and effects
                    My Patreon - HISE tutorials
                    YouTube Channel - Public HISE tutorials

                    1 Reply Last reply Reply Quote 0
                    • Christoph HartC
                      Christoph Hart
                      last edited by

                      Thanks, fixed.

                      RE multiple scripts, I thought you were talking about including external script files, which of course is still possible. However I think I removed the support for multiple interface scripts long before the rewrite so there's nothing new on that front.

                      1 Reply Last reply Reply Quote 1
                      • d.healeyD
                        d.healey
                        last edited by d.healey

                        How would one go about this? Previously I would have one file for my mixer GUI and another file for my articulation editor GUI and then a master script where the two external files were imported. All of the control declarations and actions were in the external scripts. I'm not sure how I could build the two external files now using the interface designer. Before I would create all my controls in the script with addControl but that's no longer the best method.

                        I'm thinking that all GUI controls are going to have to be created in the main script and then I can use external scripts to make use of the controls with getComponent.

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

                        1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey
                          last edited by

                          Panel bgColour property doesn't appear to do anything

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart
                            last edited by

                            Yes, bgColour is unnecessary, because it draws a gradient from itemColour to itemColour2. This has always been like this.

                            And importing files using include("Script.js"); is still working. Actually using external files does not change anything here, it's just as if you divide your onInit callback into multiple parts (they get reassembled before compilation anyway). So the same rules for migrating also apply to external files.

                            1 Reply Last reply Reply Quote 1
                            • d.healeyD
                              d.healey
                              last edited by

                              Ok cool, that's good to know. Clicking show plugin preview isn't working for me, it's asking me to select a preset size to build an interface but I already have a script with this line Content.makeFrontInterface(650, 372); is there something I've missed?

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey
                                last edited by d.healey

                                Floating tile keyboard doesn't appear to be working. I've added a floating tile and I'm using this code

                                const var fltKeyboard = Content.getComponent("fltKeyboard");
                                fltKeyboard.setContentData({"Type":"Keyboard", "LayoutData":{}, "LowKey":24});
                                

                                but it's just showing up as a blank panel

                                Something else that's strange, I have 3 controls on my GUI - all added through the point and click method, but only one is showing up in the UI JSON. The two that arne't showing up are child components of the one that is there if that makes a difference?

                                Update: I got the keyboard to show up by making it not a child component (still doesn't show in the JSON though) is this intentional behaviour?

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                1 Reply Last reply Reply Quote 0
                                • Christoph HartC
                                  Christoph Hart
                                  last edited by Christoph Hart

                                  Ah, now I understand what's the problem. Just forget about the UI JSON Data that can be shown in the code editor, I'll remove this soon in order to avoid this confusion in the future. This is a misfortunate attempt to expose the raw data to the user but doesn't work at all with nested components, breaks up the connection between the data model and the interface and does all kinds of other stupid things. Actually I forgot it's there (I implemented it at the beginning of the redesign and forgot about it later on).

                                  In a normal scenario you should not need to access this data directly, and if you do it, the JSON popup editor is the way to go (it's still not ideal because you loose every undo history, but as last resort OK).

                                  1 Reply Last reply Reply Quote 1
                                  • d.healeyD
                                    d.healey
                                    last edited by d.healey

                                    Aha that explains 99% of my confusion :)

                                    A few more things I noticed:
                                    When opening a .hip each module is folded up now, could we have a context menu for each module to unfold/fold it?
                                    Holding Alt while dragging the currently selected control on the canvas doesn't appear to duplicate it.
                                    Ctrl+Z doesn't undo a canvas action - Linux strikes again I think because CTRL+SHIFT+Z works
                                    Copying properties from a control and pasting them onto another worked great, but then I created another control and hit paste again (didn't copy again), result was that HISE instantly closed.

                                    Is the best way to add controls in a loop still to use Content.addControl();?

                                    Libre Wave - Freedom respecting instruments and effects
                                    My Patreon - HISE tutorials
                                    YouTube Channel - Public HISE tutorials

                                    1 Reply Last reply Reply Quote 0
                                    • Christoph HartC
                                      Christoph Hart
                                      last edited by

                                      Oops, you're right, something broke the restoring of the fold states. I'll investigate.

                                      Have you tried the "Windows" key for duplicating? (I assume you're still using a Windows keyboard on Linux)? Sometimes the modifier keys get a bit confused.

                                      However I need to go into Linux now anyway because I migrated to JUCE 5, then I'll check that everything works there as expected.

                                      1 Reply Last reply Reply Quote 0
                                      • d.healeyD
                                        d.healey
                                        last edited by

                                        I just tried the Windows key but no luck there

                                        Libre Wave - Freedom respecting instruments and effects
                                        My Patreon - HISE tutorials
                                        YouTube Channel - Public HISE tutorials

                                        1 Reply Last reply Reply Quote 0
                                        • Christoph HartC
                                          Christoph Hart
                                          last edited by

                                          I am currently compiling the Linux version of HISE, then I'll check what's the key there :)

                                          1 Reply Last reply Reply Quote 0
                                          • Christoph HartC
                                            Christoph Hart
                                            last edited by

                                            Ah now I see, these keys somehow interrupt the dragging operation because they do some OS specific functions. That's too bad, not sure how to fix this and the only working modifiers (Shift / Ctrl are already used).

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            55

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts