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.
    • MikeBM
      MikeB
      last edited by

      it is possible to add a HISE snippet to an existing project instead of replacing it.

      This way you can simply extend your existing project with prepared elements in the form of snippets.

      If no, wouldn't that be a useful addition?

      "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 ustkU 2 Replies Last reply Reply Quote 1
      • d.healeyD
        d.healey @MikeB
        last edited by

        @MikeB Not possible, would be useful but also very complicated.

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

        1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @MikeB
          last edited by

          @MikeB You might use external .js files for that (globally or locally), so you can share them easily. Though if you don't think about GUI only but also modules this might be trickier to implement...

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

          MikeBM 1 Reply Last reply Reply Quote 1
          • MikeBM
            MikeB @ustk
            last edited by

            @ustk I already do that - always, but as you said, only the content of the .js file can be transferred, not the elements used in the file.

            However, if I could insert a snippet into my project in its own namespace* "Snippet", for example, it would save a lot of time.

            *Of course, any similarities in the names of variables or elements would have to be ensured by encapsulating the code used.

            "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 ustkU 2 Replies Last reply Reply Quote 1
            • d.healeyD
              d.healey @MikeB
              last edited by

              @MikeB You can create factory scripts to add ui components and modules. I do this to build reusable project templates so I don't have to keep rebuilding the same UI elements over and over for different projects.

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

              1 Reply Last reply Reply Quote 1
              • ustkU
                ustk @MikeB
                last edited by

                @MikeB As @d-healey said you can still script the modules in an external file, though it's a bit more painful, at least to me because I'm not used to it... But I'm sure Dave can do this in a blink of an eye :)

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

                d.healeyD 1 Reply Last reply Reply Quote 0
                • 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

                                    30

                                    Online

                                    1.7k

                                    Users

                                    11.8k

                                    Topics

                                    102.7k

                                    Posts