HISE Logo Forum
    • Categories
    • Register
    • Login

    3 band EQ controls via script

    Scheduled Pinned Locked Moved General Questions
    17 Posts 2 Posters 798 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
      last edited by

      Your GUI has a lot of controls, I have no idea which knob controls the EQ.

      Make a simple project with 2 EQs and 2 knobs, once you get that working you'll know what to do.

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

      A 2 Replies Last reply Reply Quote 1
      • A
        alepan @d.healey
        last edited by

        @d-healey Ok will do, thanks :)

        1 Reply Last reply Reply Quote 0
        • A
          alepan @d.healey
          last edited by

          @d-healey Sorry to bother you again David, here is a snippet with two controls only.
          As you can see, they both affect EQ1...

          HiseSnippet 1538.3oc6YssaSbDFdW6rs3kCBPbQuoRqP8BGEZv1DNHkVwhcrCQEm3XGPUBgPS1cr8HVOyxrylhoBItr8In21WfJ0q508cnu.8Qf2f1+YO3cViavwkRQf8UY9OMe++y+IG2gybvAALtldoCF6i0zOiQuwTwvFCQDp1NaooeNi1n.AlaESp9XeTP.1USWu31RB5kVQK5yqtccjGh5fyHoo8.FwAeOxHhHiZG6ug340B4hOfLRQ5Mr2wgQav7Xg.dJZTQyG47Dz.7tHoXELzz+jltDAi2SfD3.M8UpybG2aH66nwx+.R.4POr7PUsdfghI2h44JQr7u0ZLj341I0uCz.i1IKJTLNJbIi1DWxD5YQiyGwvJSC03gdgiCdUWP3oq.uUhg2EL54vI9hLNRrcZicnvCUeD7DnBqXY0J7KELZv.Inh0GgdBtEGNLQix2nRkqXc8JUVcyyZdVSSyqd0s4nCsfWDAm4Yww8wbL75FXBjBDVGg3VM225qsd3i1LGoG2XucOn6d2qGvqlJq9b7SSj2rOiaUl.mproEw5q.AsHqs1pleuYol6+Pxi.NQ4gqO.KZ1uO1QT9xM2+xqUlrV0UWcSyWXV50rgxUOwZVvG48FaxT2GLZC1HeFENT9xR9pVV56sBoNBBiZNiaYcOLcfXXxcTBfbojqX8.ogiBXMPddGBoukcFhnCffM9oPn0zrDXeB0iPwV8StCKEQJ6jhqq.wLuPrzIjWv+P7pToXeT8ST.TBk6HDbxggBb4XRxaH0raVBz8EluXBHXzcYB7dzxQOBPXvZZV86OSdINrGlOS1xZb9woXYZ3nCwbE+MRPHYOe0zomupIm32XEAYzcnDwd93jyY0aRdwdcJ2JZSbVURY9nJ0HWaFhkQ50Km0RxAgB6BIhChJhJqOWRYcOOhKlqQ.L9oFxTqpZQwlrVk0s0lakqMsxaaqc+c1BIPxlKIvAfnOlKHx.s9V3ift1wsZJYrEN3IBleDdSxMgGi2Hhe1jK7k20db1s2xdDyEK6VISGCgVJi0FoNGYC6QnLk+g+vFl932i7br5nlfv98IfTFFV284f9ttd3Nr.hL0RJmtTL+ex1E2GE5IdP9HvFxv2b6K0T7kednpub22O7kWe.ALlh4F5gD4mcIGXmvPZa0gDxAAT3NGqhrSv.sJybfV0YUALmv8BFcHBmgyFuElAdkkT+Gi2j0CNqQ7LoLvthQqucQ2EXwfxmGCkKZzSvwHHqaPOzHenCUDdLMRNU8swFa9y8Fac3XOFxMeJ9uaWGRww77T+U6nq5NiXgzb2UBx6h8wHQ6nBrTlmxta2s4rP+o05U2NJY4.NLxEBEpL1ihg3tP0GavYAA8A2IxVApr5DxGHiUYT5hOByCxSa2vQvaOkh8.kMzkUn2O.KeqINsQvT2moJczsT4.Tz6MrFaz4pSct1Tmu1Tm2XpyWepy2Xpy2L6bb.sMxWlYHWidpIqmZ9lrBFnCBbYkEtqSFLw3whmuEihQmDyivkhMdOb6729My9226s37A22vWfnTJF6QjOaMoGA0q.EIFuHLpOZBSJ078NZynL+gLJwIe0AjsOX.lqh8Y5Pv1nPwYFkKY2E6gQAJk2eg88fEiQ77E8mnXQ04OVbbuWelQLbsjM7r9vXlYwOflYtfe+YyzkZaDxOB27oQ3vvn494S0g16sHdv2LdR285Hpakjvl8u8iErkDpptSsjPs7yVotWaZBajQ371sZcPSpraXr2W7sTRtVWVn.FBlNHx.bmdvDZGr5LqBx4fwmqHOKgTObjWZn+WvmDlUSCARlUSYNuIjmKYODKvq3h2yqdNiQzjSK4hN+eA02EucNolB7sj+N5qCpWDOIcrfGr1imZihzulBr.wBrGZsk6gtbOzk6gtbOzEXOzZK2Cc4dnebrGZsSvdnu7V+4EVtG5x8P+HdOz2EnbDxgydbxuCpDqmJhBfRZzuKcIi1xyVS9QZLLprdE4+GexicbjsW9RHBOacps.5bsEPmMV.ct9BnyMV.ct4BnysNVcjKecmPAaT7nGfPmlwIV5J84z9azMWTdF
          
          1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey
            last edited by d.healey

            As you can see, they both affect EQ1...

            They also both affect EQ2

            Is there a reason you're using a callback instead of parameter/processor ID?

            I think you'll benefit from this video
            https://www.youtube.com/watch?v=T40GCkxx8iw

            This piece of code should be 1 loop, you have 3. (Edit: Actually I see in your real project you have consolidated them) :) .

            for (i = 0; i < 2; i++)
            {
            	EQ[i] = Synth.getEffect("EQ"+(i+1));
            }
            	
            for (i = 0; i < EQ_CONTROLS; i++)
            {
                freq[i] = Content.getComponent("freq"+(i+1));
            }
            
            
            //Function
            
            for (i = 0; i < EQ.length; i++)
            	{
            		freq[i].setControlCallback(changeFreq0);
            
            	}
            

            This array could have a better name

            const var freq = [];
            

            Something like:

            const var sliFreq = []
            

            So we know it contains sliders and not frequency values for example.

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

            A 2 Replies Last reply Reply Quote 1
            • A
              alepan @d.healey
              last edited by

              @d-healey Thanks a lot!

              1 Reply Last reply Reply Quote 0
              • A
                alepan @d.healey
                last edited by

                @d-healey The reason why I'm not using the parameter/processor ID is that in my real project is that I have a lot of controls and I wanted to avoid having hundreds of lines of scripting repeating the same commands. Maybe I am wrong :)

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

                  @alepan Parameter ID requires no scripting, just select the processor and parameter in the interface designer.

                  7fb8c8de-efc7-48c7-a735-8c3256d0c51a-image.png

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

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    alepan @d.healey
                    last edited by

                    @d-healey said in 3 band EQ controls via script:

                    @alepan Parameter ID requires no scripting, just select the processor and parameter in the interface designer.

                    7fb8c8de-efc7-48c7-a735-8c3256d0c51a-image.png

                    Yeah I know, the fact is that only the first band is accessible in that way, and I have three bands in each eq.

                    I really can't figure out why all eqs are controlled by each slider. If you think it possible, can you explain me where the problem lies?

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

                      @alepan said in 3 band EQ controls via script:

                      Yeah I know, the fact is that only the first band is accessible in that way

                      Oh I didn't know that.

                      I really can't figure out why all eqs are controlled by each slider. If you think it possible, can you explain me where the problem lies?

                      You have a loop that is doing the same thing to each EQ. Dismantle your loop and write it out line by line instead and you'll see why it's doing what it's doing.

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

                      A 1 Reply Last reply Reply Quote 1
                      • A
                        alepan @d.healey
                        last edited by

                        @d-healey OK I managed to do it :)
                        I needed a local variable to get the IDs of the component being used and an if statement to compare that number with the counter:

                        inline function changeFreq0(component, value)
                        {
                        		local idx = freq.indexOf(component);
                        		for (i = 0; i <= 13; i++)
                        		{
                        		    if (i == idx)
                                        EQ[i].setAttribute(EQ[i].Freq, value);	
                        		}
                        }
                        

                        Thanks a lot for the support David :)

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

                        21

                        Online

                        1.7k

                        Users

                        11.7k

                        Topics

                        101.9k

                        Posts