HISE Logo Forum
    • Categories
    • Register
    • Login

    Help with this noob error please.

    Scheduled Pinned Locked Moved Newbie League
    16 Posts 4 Posters 255 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.
    • ChazroxC
      Chazrox @mmprod
      last edited by

      @mmprod well damn that was it loll Thanks bro.

      mmprodM 1 Reply Last reply Reply Quote 0
      • mmprodM
        mmprod @Chazrox
        last edited by

        @Chazrox no problem!

        For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
        John 3:16

        1 Reply Last reply Reply Quote 1
        • hujackusH
          hujackus @Chazrox
          last edited by

          @Chazrox said in Help with this noob error please.:

          Is there a hierarchy in placement of 'var's and const's in respect to functions? Can I declare those anywhere in the script as long as its not inside of a block of code (with the exception of locals's)?

          inline functions, const and vars can be declared before or after they are referenced. But regular functions need to be declared before they are referenced.

          Note that you should try to use const and reg instead of var whenever possible to increase performance.

          Check out the music of Conway's Game of Life - https://www.youtube.com/@hujackus
          ConwayMatrix - http://hujackus.altervista.org/conwaymatrix/

          mmprodM 1 Reply Last reply Reply Quote 2
          • mmprodM
            mmprod @hujackus
            last edited by

            @hujackus how do they increase performance? Is there a big difference in cpu usage?

            For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
            John 3:16

            d.healeyD hujackusH 2 Replies Last reply Reply Quote 2
            • d.healeyD
              d.healey @mmprod
              last edited by

              @mmprod 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

              ChazroxC mmprodM 2 Replies Last reply Reply Quote 1
              • ChazroxC
                Chazrox @d.healey
                last edited by

                @d-healey I have watched your 101 Tutorial 3 times with extensive notes.....but expect me to make alot of mistakes until I dont. ha. Soakin it in...

                hujackusH 1 Reply Last reply Reply Quote 0
                • mmprodM
                  mmprod @d.healey
                  last edited by

                  @d-healey thank you

                  For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
                  John 3:16

                  1 Reply Last reply Reply Quote 1
                  • hujackusH
                    hujackus @Chazrox
                    last edited by hujackus

                    @Chazrox @d-healey There are a surprising amount of cases to consider when choosing variables and functions. I made a test to show some of the problems that occur when the wrong keywords are used or used at the wrong time.

                    Console.clear();
                    //testGlobal = undefined; //uncomment to explore what happens
                    //testGlobal2 = undefined; //uncomment out to explore what happens
                    
                    //test(); //doesn't compile (This expression is not a function!)
                    testInline();
                    
                    const TEST_ARRAY = [5];
                    const TEST_CONST = 6;
                    global testGlobal = 7;
                    reg testReg = 8;
                    var testVar = 9;
                    
                    function test(){
                    	var t = "";
                    	t += TEST_ARRAY[0];
                    	t += TEST_ARRAY_2[0];
                    	t += TEST_CONST;
                    	t += TEST_CONST_2;
                    	t += testGlobal;
                    	t += testGlobal2;
                    	t += testReg;
                    	t += testReg2;
                    	t += testVar;
                    	t += testVar2;
                    	Console.print("test():"+t);
                    	
                    	Console.print(TEST_ARRAY[0]);
                    //	Console.print(TEST_ARRAY_2[0]);//doesn't compile (API call with undefined parameter 0)
                    	Console.print(TEST_CONST);
                    //	Console.print(TEST_CONST_2);//only compiles if TEST_CONST_2 was defined in a prev compile
                    	Console.print(testGlobal);
                    //	Console.print(testGlobal2); //only compiles if testGlobal2 was defined in a prev compile
                     	Console.print(testReg);
                    //	Console.print(testReg2);    //doesn't compile (API call with undefined parameter 0)
                    	Console.print(testVar);
                    //	Console.print(testVar2);    //doesn't compile (API call with undefined parameter 0)
                    };
                    inline function testInline(){
                    	local t = "";
                    	t += TEST_ARRAY[0];
                    	t += TEST_ARRAY_2[0];
                    	t += TEST_CONST;
                    	t += TEST_CONST_2;
                    	t += testGlobal;
                    	t += testGlobal2;
                    	t += testReg;
                    	t += testReg2;
                    	t += testVar;
                    	t += testVar2;
                    	Console.print("testInline():"+t);
                    
                    //	Console.print(TEST_ARRAY[0]);  //doesn't compile (API call with undefined parameter 0)
                    //	Console.print(TEST_ARRAY_2[0]);//doesn't compile (API call with undefined parameter 0)
                    	Console.print(TEST_CONST);
                    	Console.print(TEST_CONST_2);
                    //	Console.print(testGlobal); //only compiles if testGlobal was defined in a prev compile
                    //	Console.print(testGlobal2);//only compiles if testGlobal2 was defined in a prev compile
                    //	Console.print(testReg);    //doesn't compile (API call with undefined parameter 0)
                    //	Console.print(testReg2);   //doesn't compile (API call with undefined parameter 0)
                    //	Console.print(testVar);    //doesn't compile (API call with undefined parameter 0)
                    //	Console.print(testVar2);   //doesn't compile (API call with undefined parameter 0)
                    };
                    
                    test();
                    testInline();
                    
                    const TEST_ARRAY_2 = [25];
                    const TEST_CONST_2 = 26;
                    global testGlobal2 = 27;
                    reg testReg2 = 28;
                    var testVar2 = 29;
                    
                    test();
                    testInline();
                    

                    or in snippet form

                    HiseSnippet 1126.3oc2W01ahbCD1KIaUg9h5I0OzO5luTnWUOfRBjFE0KgPthZSBJPiZUzIjiWSv5L1q10jbnS4+b+GzN1KaX2vB4DjnJ08KKddwyiGOOKyzIPQYggp.jSgdS7YHmO2s6DodXygDtD09HjyW5dBITyBvQhNbhOILj4gbb13MFAN42DYe96e4PhfHorYhPnKTbJ624i35YR675eiKDGS7X83iRXcsW2lpjMUB0X.Oa3VF4SnuibM6ThwrbtnekDND478tdUpUYPCJYmFUpUkRq1nd0cqSYjACX6TY650ZLn1.BsbUjymzxiqUAc0DMKD4r4gJuIcGptUFEfK3g7qDLyhJntPjiDerR3YNhFonlC4BuNwIpPDrKclk11HJs80tmv832KeV56qrJvy7HYBzIWZ3sQJ3UII7Jm.dY.ImDPZyHH8B2tz.tudlFCd9L21R31DROrTPIxVTtuofKtoRFpDrejJXjfhk1q.9UuBvm9MB0UDAde7XoGa.Wx71CzLVRUiFwjZrVgYu2WnBX3aGRz3gDeelLLs6UWr+pwKYOh2E.Ovu7TrP42owfq9bACWr2Pdnwy.3nxURLrRpzXBd.r+ZPx2Vp.13eao.hr8TU.bWFpw8Z0sW+CN+7C9K.aWt8a2KkhlmcZ2dfhc.wWGkARkLpCxCXWaEdN7debCPxMj.qjKf26i20FsXnfiNGen.Nu0Lvfs1BrHuF+x8SflKK+1Lj1u5bxsPLCQ8qduvYPNCQoMCNDObcZCfyzCWaMHttwOfK0E2J5T9ya8RsIYmeNCRcPipxVnE1Cco8x3h+fNswThPfukqGNqxB6SBfOaX9vU4RYGZaJZwwcZFzDTkTLINhgX9fToX7sjPbbT4RnjCJBuI174B8rrdlgNwkhsPetPmjI8HQNqPCWlKLtlKZHnvySUddZ0wBinoxYMi3cvdysb5z7qXdtgkITTCq8+w7r3SaLaaojIKUZMR4+WwSWJKcoboGiJ8XLokSSWOV5hnhqIuX4L7m1s0RwwOGa6Zh16rTgosM7Q7++8McmbY0LaAvpqZlcAX07f9.rxdPm.VY6tTLc+2vTxSUZ1YxhkJ7gB4Kb27pFLHScPdTGnDBVPlpM8bGrLGKJGO5JVvO..WLlcugPekoaV0cwMqlrWZHMpgl6RXnR1Vx0mAs0snNrQMibB90ez9HhlX5vcpLvNeVflaffyQraf4Kh52Mu6Qrv2oU9vDFy0LLzFtxarfnS2atYBloJfbPpFhMsIKC45IImv4Iqg8OVH9B2NbMcX1XLWFXDxTOGXb5XNegaKXFKpdF.2z83+74YlFz4v7.b40mPzA72C0amNdTWXzPJChtTxDlZPmblpkn0kMqMYftLomcw+.OSUVwr1YpxJwJQiHz.UeZTkuYPpO0JAvjzNzYdX5WXMtBxxFRlmGAy00mRSuUy4X0U0weZUcr1p531qpi6rpNVeUcrwi6nYr6CFqUihnMHzIcZY+ThiSKIAp.sUqn+Eg0SCJA
                    

                    Check out the music of Conway's Game of Life - https://www.youtube.com/@hujackus
                    ConwayMatrix - http://hujackus.altervista.org/conwaymatrix/

                    ChazroxC 1 Reply Last reply Reply Quote 0
                    • hujackusH
                      hujackus @mmprod
                      last edited by

                      @mmprod said in Help with this noob error please.:

                      how do they increase performance? Is there a big difference in cpu usage?

                      There is a difference when you have a lot of variables. If you use the var keyword for all your variables, when your program references a variable at runtime the program has to search for the location in memory that variable refers to using a dictionary/hash lookup table.

                      If you use const or reg, these variables are optimized at compile time to work more like indexing an array, which is much quicker. If I'm wrong, I would like to know a better explanation.

                      Check out the music of Conway's Game of Life - https://www.youtube.com/@hujackus
                      ConwayMatrix - http://hujackus.altervista.org/conwaymatrix/

                      1 Reply Last reply Reply Quote 1
                      • ChazroxC
                        Chazrox @hujackus
                        last edited by

                        @hujackus Im not sure how to apply this.

                        hujackusH 1 Reply Last reply Reply Quote 0
                        • ChazroxC
                          Chazrox
                          last edited by

                          This is why I asked. I've been trying to practice different scripts. My code gets long and things that were working before stop working. My assumption is the order that its placed. Its easy for me to understand writing 1 block of code but as soon as I start writing past that things stop working. Here's an example of painting an image onto a panel. I did the first scope correctly because the image shows up on the panel. I assumed I can just rewrite the same exact code under it and replace the names for the new panels and images and it would work but for some reason the second image>panel is not drawing. Help me understand the Logic. I've been watching hours and hours of scripting videos for HISE and c++ so im up to my nose in it. I feel like I just need a little more insight if you guys can get what im saying and give me a nugget or two. Appreciate you guys!

                          Screenshot 2025-02-09 at 8.10.06 PM.png

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

                            @Chazrox Check your spelling on line 26.

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

                            ChazroxC 1 Reply Last reply Reply Quote 0
                            • ChazroxC
                              Chazrox @d.healey
                              last edited by

                              @d-healey frik. Thank You sir.

                              1 Reply Last reply Reply Quote 0
                              • hujackusH
                                hujackus @Chazrox
                                last edited by

                                @Chazrox said in Help with this noob error please.:

                                Im not sure how to apply this.

                                That's ok. I just made a code example that would have helped me a month ago when I started learning "HISEscript". By uncommenting each line, you can see the differences in behavior for each combination of keywords used.

                                Check out the music of Conway's Game of Life - https://www.youtube.com/@hujackus
                                ConwayMatrix - http://hujackus.altervista.org/conwaymatrix/

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

                                14

                                Online

                                1.7k

                                Users

                                11.8k

                                Topics

                                102.7k

                                Posts