HISE Logo Forum
    • Categories
    • Register
    • Login

    HiseScript Questions

    Scheduled Pinned Locked Moved General Questions
    13 Posts 8 Posters 897 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.
    • CasmatC
      Casmat
      last edited by

      Hey!

      I’m just starting with HISE and I looked around the community, videos (thanks David Healey!), and docs! I got to say, it’s a great platform and I can’t wait to learn more about it! I do have some beginner questions though. Everything in HISE seems intimidating and I can’t seem to build something functional. I felt that learning the HiseScript would be the best thing to do first. To learn HiseScript I would need to learn JS, right? I found that codecademy had a free course on JS and was wondering if that would be enough to learn what I need: https://www.codecademy.com/learn/introduction-to-javascript

      After that, should I go look at the scripting docs? What’s the best course of action and how did you guys go about learning and mastering Hise to create audio plugins. My main goal here is to complete a project. The best example would be David’s player, Rhapsody and his LibreWave plugins. I would like to create a plugin which would play all my different instruments with things such as ADSR for filters and amp and fxs like delay and reverb. If you would like, you can check out my website and the screenshots of the kontakt instruments are what I’d like my plugin instruments to be:
      https://nestacoustics.com/instruments

      Just would like an overview and some tips to how I would go about this tremendous project and how I would create this. Thanks again for reading this far! I have some development experience, but now is when I’m venturing off into the audio plugin realm!

      i make music

      d.healeyD ? DanHD clevername27C 4 Replies Last reply Reply Quote 2
      • d.healeyD
        d.healey @Casmat
        last edited by d.healey

        Hello, welcome to the forum.

        Everything in HISE seems intimidating and I can’t seem to build something functional.

        Go build this:

        And then this:

        To learn HiseScript I would need to learn JS, right?

        A basic knowledge of JS will help, but don't get too deep into it because HISE Script is very different to JavaScript and your time will be better spent learning HISE Script.

        After that, should I go look at the scripting docs?

        We are all continually reading the docs. Also read the posts from Christoph in the Blog forum category (https://forum.hise.audio/?cid[]=10)

        There's also this course I made - https://musichackspace.org/product/creating-virtual-and-sample-based-vst-au-plug-in-instruments-with-hise/

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

        1 Reply Last reply Reply Quote 1
        • ?
          A Former User @Casmat
          last edited by

          @Casmat Welcome!

          I can only give my own perspective on learning HISE. I never learned Javascript and had only limited KSP knowledge before starting, the most effective way to actually understand everything and "think" about code functionality, is to just start making and breaking things.

          Since you're planning a big project (player plugin), you'll probably want to break it into smaller pieces and handle them one at a time. Start with a very basic instrument, add some modules like a Sampler, ADSR and maybe an effect. You don't need any scripting for this part.

          Once you have the most basic of projects, try adding an interface and connecting some front-end controls to your Modules. This can also be done without scripting. Once you have a handle on the basics (adding modules, adding interface elements, connecting the two & exporting the plugin(s)), you can start scripting.

          First, I recommend disconnecting the interface elements from the Modules, then manually connecting them via scripting. You can do this by right clicking the Module -> Create Script Reference, and right-clicking the Interface Element -> Create Custom Callback. Your first callback might look something like this:

          //
          // Create Interface (width and height)
          
          Content.makeFrontInterface(600, 600);
          
          //
          // Right Click Sampler Module -> Create Generic Script Reference:
          
          const var Sampler1 = Synth.getChildSynth("Sampler1");
          
          // add a button to the interface via Right Click - Add New Button
          // Our Button Function, attained via right click -> Create Custom Callback
          
          inline function onButton_SamplerBypassControl(component, value)
          {
          	Sampler1.setBypassed(1-value); 
          	/*	
          	Sampler1 is our sampler module, as referenced above
          	we call the class method, setBypassed(bool) where bool = true or false
          	instead of manually setting true or false, we use "value" which is given to us
          	by our Button Callback
          	
          	note: the 1-value is to invert the button to better match our interface
          	*/
          };
          
          Content.getComponent("Button_SamplerBypass").setControlCallback(onButton_SamplerBypassControl);
          
          

          You can also share and import HISE Snippets, which can be very handy for sending barebones projects for debugging or testing to other HISE users.

          HiseSnippet 1463.3ocyX08aaaCDWJNJqVqqXsnXXuL.hf8fSQRrc+bnEa0INeffUmXXmVzmV.sDsMQjHEHoRp2P+eZ+Iz+j5i6ssiTRVRtFYNdsc0OD363cG+cev6NmtBtGQJ4BK6pmNIhXYeSm9SXpwsGioLqi1yx9VNcvREQfRXs6jHrTR7srsqbnlgc0UsLed+y2EGfYdjbVVVuhS8HufFRU4b615WoAAGf8ImRCKH8CacjGm0lGviA7TwogUD16b7HxwXsXq3XYu199TEWzWgUDIHytb+I8GyujkH+qnR5f.hlnoUevPIrsZOlF32MyWkVV1Ncy87JId9cc5P8oS4mGA9VyAnbMJFCrW4pfTyqAjrK.oUSfzsc56InQp7Sz34qcNhAIjgXHTWDJIxZsxeUwodc250QsED.TnoRipcI0WMFgY9nwD5nwpMbcaygiYpsCwmSNP.DSEu1iazXSD7mMdlqahE6oUB0Nf5cNpONLJ.pK5v8iCHns9kr66PBiHndnD7f5QFRDDnt3ottP9UpPWfEYZ2D8yHSA21iHJSLwPUa8ryWO4xQXeeDFMHVo3LjhiTiIH5TG6BJtD11BsCH+wjKQ6ZzPagShEoTnChYdJJmsIBqTPZl3arfvXAuDKL0cZGKU7PTabPv.ndz0kxB.UPCSMBhyRL6YoXNImniqBdPMOdXDmAQ3MA+NHlrg6e3VMy61VRTYovZM2JQfmgbqV+dUykBQkH3MARlFwCMQb.7RjHK3BQmA7KHtUujf7.nZBPdAfkQgD0Xt+lnh20.NOXCzkiAkQ5uCoAkHlf3BzPbfDrCExTDrOhODEhYwfImnsfhxFUVzMQvUFKIn0MvecvpTuwZLOhdAwjrhktUGLw3CoYfoQSvMYbE4oF7lFAz5BZQYWPDJyA448A.Dzg.rBtCsAmVD3V8d0ce6yxqn0UTYA+ZqOubz5anS.oYpLHU6JymP4XgD+w.zOgUyjSceqKZ1iFNbtmkZKv1y8XcaQwUoXMVb3.hnXEkVPnuQ4lQqsXMi7RBXEDjyNhQUmDQRoOfG3qaxn+9G15xJMhqahkhPPTkoE1sRagkDRsnfQ9Nm4EesL9RwwIVu7n8vJblUgK.tzHnjfp8M68HW.yVRZTV0YOh7bEOxHaZNGBGWWL7lo2+6F0ZRNX9sVVeX2YXtf9gHVUdXgdpX5APRqTGZcqUljplTzMuFSPZbkSPVTHdamtT30y7w3JyAiPF3SAFSm69MN6ObHwSkCvUcN30K6P1E+5+gjq+NN8UPi9PnuVZsfACtNYce+XrxSzBuxSWAIfi86S+8Bh8tV6FCwHQYt+YKyUsSHOlU5tRQdORDL.CRyEz4Fs506PAONZVsd+yMEEmJfNfPnn3AmvHPrVUzGaK3R4PvcL1RV7ntwhQ5XUNmdDnOtrLuiiCg7MiQB.kcrsAVuTRz4WpWGrRPeSQoM2RiSwlbLrGngt4Lz2eF5GLC8Cmg9QyP+3YneRNcR.sCNRWYn2Ccl9re0h0mELPWL3xEjbW5noFOgS41GEDcZL2fqBa8NmcIW6S05sqtXu79WlW7keuzRaiWMCi8o5T09vdIAvfHCFuCL4YHNNPkwsb+hNbFOZLmQ8J+h.pvGMhHJh845P6.6m5cdNm61pGIffkEdR+isdArNJVT9g90JVb8+kIyMe88NIvEoaxg9uj29rVlckyCqrPyC+ni2ke13m0P2sRmRhfaWn9BOOeSGSecjdL7+WPsGOV+KnxFw4.yA6Cy98HEmFthdBaBcCMsFP8ILeCweCeROrY1nS8gMyNzxKyTfuk9cydz1UHL8nCyZdAvP4fhkzRXCCMjfwaeVPYH1SvOyK4mKnw5MLb.TxL+6dp5zQSiZl8CCbbZrcCqPXV0Ydd5GBaAQ34qy8WBcdvRnyCWBcdzRnyiWBcdxRnyOck5nWSXmXEOLoIIvn69IEV16Osvph0+.vhoeNM
          

          Copy the above snippet, then hit File -> Import HISE Snippet to load it, you'll open a project that has a Sampler and a button on the interface, as well as the above code. Click the button to see the Sampler turning on and off.

          Finally, as I mentioned above, you'll want to break stuff to understand what's going on. You won't get very far just following courses or reading forum posts, you need to actually get in and write some code, watch it break, then try and figure out why it broke. This takes time, but it's like learning a language: immersion is key.

          David Healey's Patreon and course are great tools for specific examples as well, and he covers more advanced topics like Expansions, which you'll likely need if you're developing a Player Plugin.

          I hope this helps.

          1 Reply Last reply Reply Quote 1
          • ?
            A Former User
            last edited by

            dammit David's just too fast

            1 Reply Last reply Reply Quote 3
            • CasmatC
              Casmat
              last edited by

              Wow! Can’t believe y’all reply so fast! I’ll look into more detail on everything and I’ll post if I have questions! Definitely going to work on some test projects to get a hang, and then I’ll start building the instrument in multiple sections! Thanks all and if anyone has more info, it can’t hurt to add it!

              i make music

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

                @Casmat Welcome to the forum.

                In addition to what the others said, I would suggest to not worry too much about the player plugin at the moment (it's just a distribution format) and start building your libraries on after another.

                Also David forget to mention his great scripting video:

                which contains basically every concept needed for starting out scripting so at this point I wouldn't recommend a vanilla Javascript detour anymore.

                1 Reply Last reply Reply Quote 1
                • DanHD
                  DanH @Casmat
                  last edited by

                  @Casmat keep searching the forum for threads on issues that you encounter. There’s so many examples of code and, even better, snippets that will help you see what’s going on. And if you still can’t find the answer or an example post a new thread on here. As you can see already the users on the Hise forum are unbelievably helpful.

                  DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                  https://dhplugins.com/ | https://dcbreaks.com/
                  London, UK

                  1 Reply Last reply Reply Quote 0
                  • clevername27C
                    clevername27 @Casmat
                    last edited by clevername27

                    @Casmat Sub to @d-healey's Patreon.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      Sawer @clevername27
                      last edited by Sawer

                      Hello everyone !

                      I just wanted to find a clean way to deal with multiple buttons and sliders.

                      HiseSnippet 1313.3ocuX0saaaCElJIpMVscnAXXWKTfA3NjkXaIs1hfg3FmjAitjZT2Fr6BnknsIhDofDUZ7FJ1dl1SvdD1iPeD1av1gT9GZGY4jzt5KBBOG9Q88cHEOmi5jv8Ioo7DjQk2NJlfLdnY2QLwvVCwTFp8gHisLeW6yawCHsBIXVVbczAihwooj.jgw5+jbZFU1.A+NK8u2+.bHl4SlXRYlS8I+LMhJlYsSyWQCCOFGPdKMRa1tMa6yYs3g7LfRqaVCEi8u.OfbJVNs0LQF26n.pfmzUfEjTjwFGvCF0cH+8r74eFMk1KjHGTG0EVnbyGyCCjLVZE0ZHMLnyDomhfUoyr.w54Ahu17DZ.cp8YAjGqbXOCgd7vXs4o25yQu55zqlF8JfRFZTZibJskYW+DZrXlGIedfYalfjzGCgccpjOWzZ+48LawgYvD6DgufbbBLXJhpd0psssasZOcOKKHzmJruDmX+JFuWc6ezdBvADQKdTLmACp9Dk2m.HlGPiRAz35.bJEfy0A3VJ.2qCvqT.dR.VV6tqbPpcD9J.XXFQBmhgsIqDx.6KjjOgzmjPfS1mImvdSc3rLGtKyg2hNjDnCrqQYCrwggpIkNlHB9TtjZaQYgTFwteFyWP4LaNSEXkBLgGV0eh51NG8Ss9MqJEvdHlnvIiHJCUe5dUr9vdVkt4sSpzp5I0BnYO38xpyS.UvrXN5rRN5THGcz4njhVkddY4bzY0bzckbzsPN5dK3naYbzc0bzakbzqPN5cK3nWYbzSmi6t6IvkhpCr1941Ckmhor.RLA9CSjlebda6DRZLAjB3lf8GZmfYCHKQk0KUk4mcSmnGE.M4Y+cE8Fq8t102QdIWk7iUqBtSYvcWIb2xf6sR3dECuxJ14pW1NWc8ct7eZg8S4BxqYUUAXqOXYunq98Kz230LjjTnaYx8jx.VkkE0ijnu8JmHjwa9znlKOMpdVd+7Pi1D4r1Lp30vowkk6GMNdBobMGyJXpBUB2uZbB2tgz.RBhB4UuuoJXhTDVuLGzMFbiOEvNeJfc+T.6U.3209Pr.KqVYbTDhrwjDAUtoYbH4Rnzu7ZWpXdHI8BAOFpfa5wVnby7G5ilTYClQBUOyMMU+eczU5OvQ5CdOMPLbpgl+dygD5fgZUYNpYuASpk7gltMd1yq+hZ0ddMDUPhlywKbdlqimqliFK3QPtRnWWZOdBDd5R+04BH4VeCNflktPTdpjevJOaoIYZSMIeXy4k7eb1hRFrjBG9U2ZzgGmEKWzW1ieIQI.4SUck8jM8Hntdjw2XdJOIBGBhInCIwGnITxMJMqee5UR49snHZPPHrjoT4KvynzG2+1HsF5R6sZRqIYAogZescy1qPZOz7PZJbmghfegElilv.s74UXaZ9FxkjjdeoEkqtnh+LKp6C2GDhG8kVSdZZ5iYe10TGpveHPUM9g9KnuBsgMWlPjsEesV9flM4AYgXw7cfJa6drC4Zn21mr0NFr1Z2a7O6uXaoabyZKs7tluozcq7vRw7csB3KjO4+a9NtI+GYdT+9PYoyH6FlG+Kk1Q+F2rRQVAUdCOSVK7IXQh7.t4oYQcgbK9DfILHumrlGi0jINxGWSNVFY5B0UqF7uvuwNqKGaL1Y8INQQX+D94iKLW9IE1TYA3DS80Tp.4Bfw1SKlwzr1N0junQO22WFJ9df6Eiowc.iyc.i6c.i2c.yObGv7r6.lmWJF4GV5kYBdT9qIfgNGoJvxv3Hl7i.nNQh9Ov7ZGRM
                      

                      In this attached snippet, I have a set of knobs that are controlled by a main knob. The code works, however I was wondering if there's a less "boilerplate " way to achieve the same result with a cleaner and less code.

                      Thanks

                      1 Reply Last reply Reply Quote 0
                      • alhugA
                        alhug
                        last edited by

                        @Casmat love your sound design videos! Everybody should go check those out. I started playing around with HISE about three weeks ago and @d-healey s videos and this forum have been really helpful. I had zero programming experience before I started with HISE and still managed to build a sampler instrument with Reverb, Delay, Saturation and started using scriptnode. I'm still far from having a plugin that I feel comfortable distributing but I'm slowly getting there. My screentime has gone up a lot in these three weeks but I'm here for it.

                        "HISE is for software developers. If you're not one you must become one." - David Healy

                        CasmatC 1 Reply Last reply Reply Quote 1
                        • CasmatC
                          Casmat @alhug
                          last edited by

                          @guhla Sound design videos? You talking about David?

                          i make music

                          1 Reply Last reply Reply Quote 0
                          • alhugA
                            alhug
                            last edited by

                            @Casmat you linked the nestacoustics website, so I thought that was you

                            "HISE is for software developers. If you're not one you must become one." - David Healy

                            CasmatC 1 Reply Last reply Reply Quote 0
                            • CasmatC
                              Casmat @alhug
                              last edited by

                              @guhla Wowwwwww!!! Can't believe you caught that haha!

                              i make music

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

                              21

                              Online

                              1.7k

                              Users

                              11.8k

                              Topics

                              102.4k

                              Posts