HISE Logo Forum
    • Categories
    • Register
    • Login

    Insert instead of replace

    Scheduled Pinned Locked Moved General Questions
    16 Posts 5 Posters 621 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.
    • d.healeyD
      d.healey @ustk
      last edited by d.healey

      @ustk No it's painful for me too :p but it's a one time job.

      All of my instruments that I'm working on have basically the same interface. So I built it once using the usual tools (interface designer, etc.). Then I spent a day writing a script that would do exactly the same thing.

      Now when I start a new project I run the script and my interface is built. Then I remove the script because it's no longer needed in the project.

      Here's the script (or an old version of it) - https://github.com/davidhealey/LibreWaveBoilerplate/blob/master/UIFactory.js

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

      ustkU MikeBM 2 Replies Last reply Reply Quote 4
      • ustkU
        ustk @d.healey
        last edited by

        @d-healey said in Insert instead of replace:

        Then I remove the script because it's no longer needed in the project.

        I imagine that's why you seem to be relying a lot on getComponent(), clever 😎

        Can't help pressing F5 in the forum...

        1 Reply Last reply Reply Quote 0
        • MikeBM
          MikeB @d.healey
          last edited by MikeB

          @d-healey Thanks Dave - but unfortunately I can't get your script to work!

          No error is reported - it just does nothing.

          A video?

          "One hour of trial and error can save 10 minutes of reading the manual."
          "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
          HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

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

            @MikeB You don't want to use my script, that is just an example (unless your project has the same UI as mine).

            I'm creating a UI using scripting instead of using the interface designer (but once the UI is created I remove the extra script and do further work in the UI designer).

            There is nothing special here, these are the same functions you'll be using in your secondary (non-main interface) scripts to build those UIs.

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

            MikeBM 1 Reply Last reply Reply Quote 1
            • MikeBM
              MikeB @d.healey
              last edited by

              @d-healey No - I don't want to use your UI. I just wanted to understand the function.
              I understand the principle of how it works.
              Do you have a current snippet?

              "One hour of trial and error can save 10 minutes of reading the manual."
              "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
              HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

              d.healeyD orangeO 2 Replies Last reply Reply Quote 0
              • d.healeyD
                d.healey @MikeB
                last edited by

                @MikeB I don't have a snippet that would make it any clearer. Add the script via include, then call the createShell function.

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

                1 Reply Last reply Reply Quote 0
                • orangeO
                  orange @MikeB
                  last edited by orange

                  @MikeB

                  In most cases, I directly use the below method to create UI controls. Every UI property can be set inside the JSON data.

                  This way, no need to repeat the process again and just copying / pasting the code will create the UI control quickly.

                  After creating the UI controls, you can also delete the code and go on with the interface designer too 🙂

                  addPanel, addKnob, addButton, addComboBox, addFloatingTile...etc.

                  // Create Panel ------------------------------------
                  const var Panel1 = Content.addPanel("Panel1", 10, 10);
                  Content.setPropertiesFromJSON("Panel1", {
                      "width": 230,
                      "height": 220,
                      "borderRadius": 0.0,
                      "borderSize": 2.0,
                      "bgColour": 0,
                      "itemColour": 0,
                      "itemColour2": 0,
                      "textColour": 0x550095FE,
                  });
                  
                  
                  
                  
                  
                  // Create Knob  ------------------------------------
                  const var TheKnob1 = Content.addKnob("TheKnob1", 30, 40);
                  Content.setPropertiesFromJSON("TheKnob1", {
                      "text": "The Knob1",
                      "tooltip": "This is the tooltip",
                      "isPluginParameter": true,
                      "pluginParameterName": "The Knob One",
                      "isMetaParameter": true,
                      "useUndoManager": true,
                      "width": 161.0,
                      "height": 45.0,
                      "parentComponent": "Panel1",
                      "min": -1.0,
                      "middlePosition": 0.0,
                      "stepSize": "0.1"
                  });
                  
                  
                  
                  
                  // Create Button  ------------------------------------
                  const var Button1 = Content.addButton("Button1", 50, 120);
                  Content.setPropertiesFromJSON("Button1", {
                      "parentComponent": "Panel1",
                      "isPluginParameter": true,
                      "isMetaParameter": true,
                      "tooltip": "The Button 1 tooltip",
                      "useUndoManager": true,
                      "pluginParameterName": "The Button One",
                      "isMomentary": false,
                      "textColour": 0xFFFF3F3F,
                      "bgColour": 0x55F83F3F
                  });
                  
                  HiseSnippet 1299.3ocsW0raaaDDdorYPjZRfCPaOVPnSJ.1NRxVoosnPt9GU3lZagH6fbKXM4JqElbWBxkIV0H.8knGxs9lzGf9DTfdtm6wdptyvk+JKoHKfxDCH9Myr6ry7MyrrefzlEFJCHFUOcrOiX7.yAiEpQ6MhxEjC2mX7HyingJVfkFZ2w9zvPlCwvXkuGALptJI94u6tK0kJrY4PDxqjba1Ox83pbz967BtqaOpC6TtWAs2dmCskh8jtxHveVwrIwmZeI8B1wTTsJlDi6cfCWICFnnJVHnytRmwCFIemPq+q3g7ycY3KsHCfERCS1aD20oe5YMjPLVse9IeE8I+SMOh6vyvyi.qEKvJ2hhw.iJyykZcGbIiBtzpZW5wlCrC39pbIn+7IlGJfDxPJDpK5JZcIU9cSy8jfFB0ldzKY8BfWxrnQ6NMW2p81Mex2TCdd5Ss1KfAttUepf4ZswB7TCxRgJq2RCzF0x5asR2PpiSLVi5ZQ0W2pUS7OX6R0IjgGHeVfhyBAuy6GFbxwEL35ZVvS82wcTip+0Vs2p45ZjQL9EiTHT6TnykANrfWRc3QgfflaVVv.9OwP8yguPyuPcSf3Jl2b.aW.UwtRkq5Uc5zr4W0o2AqW685nYw34KDxysZcWCnmNhgFNQHEgZTOUFDhfPh01KPLsfIWmeD.mGkXkHJQfT5p39ZY7PK3+JPmT3z3RXe2nK3h9z.nnD3Tf9pfHVhX+xBwB2hal0IBV9JcDSQmw5DExNS3HOhJfx+IjkxKZ8rVadKlw1cxv7oAPjYOomuT.+.8iTJlVAOt..2HeU73NNtr9xPthKEknSPGP+DxT8la1pdVFOOguajRIE28Tt1tIx3ZvF0SDB4OrrsU6EHmmax0KXf3ijTmalpDsoPPXBdy7RnygzjrbkoMRO3TPCFCJMj5FxldwYO3YK3eSovGJb68bTVVVbXjvFy4VRwwRE6DQimT65ZUq89ZVSJZ3voJCSJARWWVvTEiS5BlmgMDQdmyBVGnDtQrLEgQAkmubuEa9hsliTPQo3PAWchOK48dRWGbtA96aOMhjPxf4RUR7PPUU7ToGkLUZfKGZwR3vhTyLsSCI1+SFp+qe3C+QWxrrWmbisupYBqsj45myNbephhCHS7obROfsO6svMLziKqZtOK7RkzOV2D5NLuTusOLcXJx8i206apqCHWQLLMpA603zeD2jAVw68WIdgtCCh7mIHEG8TzgSYZntoX4iSlNZ6hv4DYD8e+ExYHJlGxNRqsHYh3S0WjdpZjrx38GxZ9SRJSIFel4T55StUmAbkLfUZJ0rn6TrQOYh9FolVtUPJZZ.WGFsb1IKfqQ94d6LQerB4OuR2C82J2GuXtIsMNrqlPabjlmsZOXAXmwgz1ogzqv.wLcpYF6lQbIKU74lSqS5LhaSMQrlY4lmSPo518laljo1s6+bl91425Vnv8ekNQtTU4KEi29OQ.FkKdST71lBH5Ot3WGbGtoby4dS4E0EerYetxdzz8wJSwGwhr+G7wjuu3glGLbHyVk6fqZ160K6GS7Q19WJiTbwEGQUAbjzdbj2.HSayfcW.zyPj+TA6yqeuI9NFAFvDNwubC7jHrUJYCE1JUHwiZGHeist6N9EL2OFA7IQLKrJ7kiv6VYM0wZtlPwpC+M113weCnBb51zdIrYqkvlsWBa5rD17rkvlubIr44y0F76X+tHkzSWN..8OHd3pgwABJvrhYgj+Cv04YUK
                  

                  develop Branch / XCode 13.1
                  macOS Monterey / M1 Max

                  MikeBM DabDabD 2 Replies Last reply Reply Quote 3
                  • MikeBM
                    MikeB @orange
                    last edited by

                    @orange That works - thank you

                    "One hour of trial and error can save 10 minutes of reading the manual."
                    "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                    HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

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

                      I just remembered Christoph wrote about this ages ago in this post (lots of other good stuff in there too) - https://forum.hise.audio/topic/79/scripting-best-practices

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

                      1 Reply Last reply Reply Quote 2
                      • DabDabD
                        DabDab @orange
                        last edited by

                        @orange Hmmm.... Exactly.

                        Bollywood Music Producer and Trance Producer.

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

                        33

                        Online

                        1.7k

                        Users

                        11.8k

                        Topics

                        102.7k

                        Posts