HISE Logo Forum
    • Categories
    • Register
    • Login

    only when plugin is visible?

    Scheduled Pinned Locked Moved General Questions
    49 Posts 5 Posters 1.1k 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.
    • MorphoiceM
      Morphoice
      last edited by

      Is there an option/function to check if the plugin is visible?
      Given a lot of calculations in the GUI (like meters) only need to run when we see them, this is a good way to optimize performance

      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

        GUI stuff won't run when the plugin isn't visible - you should also add Synth.deferCallbacks(true); to your UI script.

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

        Christoph HartC MorphoiceM 2 Replies Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @d.healey
          last edited by

          Link Preview Image
          HISE | Docs

          favicon

          (docs.hise.dev)

          MorphoiceM 1 Reply Last reply Reply Quote 1
          • MorphoiceM
            Morphoice @d.healey
            last edited by Morphoice

            @d-healey yep the timers was what I was wondering about. Somewhere I read you recommending to avoid them, as plugins aren't visible most of the times anyways.

            I want to spend the day today deepening my scripting skills, trying to make some metering within the volume sliders (works beautifully for one, just haven't figured out how to pass to the paint routine which slider to update) and something like a row of buttons which only one of can be selected (to change the eprom/sound of a drum voice)

            also very occasionally if I trigger a lot of pads I get the console output

            Interface:! Line 127, column 19: Cannot assign to this expression! 
            MorphDrum:! Line 127, column 19: Cannot assign to this expression! 
            
            

            which is the

            this.data.alpha -= 0.1;
            

            in the timer callback of the paint function.... can't figure out why

            https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

            d.healeyD griffinboyG 2 Replies Last reply Reply Quote 0
            • MorphoiceM
              Morphoice @Christoph Hart
              last edited by

              @Christoph-Hart superb! HISE is thinking ahead for me <3

              https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                @Morphoice said in only when plugin is visible?:

                metering within the volume sliders

                Use the built in peak meter floating tile and style it with LAF.

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

                MorphoiceM 1 Reply Last reply Reply Quote 0
                • MorphoiceM
                  Morphoice @d.healey
                  last edited by

                  @d-healey you telling me a feature I spent all night coding myself is built-in?
                  :)))

                  https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                    @Morphoice Yes :)

                    Set up the data property something like this - change the processor ID to your simple gain (or other volume module that you want to connect to). The important part is the ChannelIndexes which catches everyone out. This needs to be an array with the channels you're interested in. In this example it's [0,1] which is channels 1/2.

                    {
                      "ProcessorId": "masterGain",
                      "Index": -1,
                      "FollowWorkspace": false,
                      "SegmentLedSize": 0.0,
                      "UpDecayTime": 0.0,
                      "DownDecayTime": 500.0,
                      "UseSourceChannels": false,
                      "SkewFactor": 0.2,
                      "PaddingSize": 1.0,
                      "ShowMaxPeak": true,
                      "ChannelIndexes": [
                        0,
                        1
                      ]
                    }
                    

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

                    MorphoiceM 1 Reply Last reply Reply Quote 0
                    • MorphoiceM
                      Morphoice @d.healey
                      last edited by

                      @d-healey basically I'd just want to relay the meter from the sampler, I had gotten the value with

                      
                      var value = Synth.getChildSynth("Bass").getCurrentLevel(true);
                      

                      inside the paint routine, which was stupid. Id probably also have to sum them to mono as there is really no stereo information in the samplers. Single drum one-shots. But i figured with the layout of the plugin the visualisation helps to identify the correct slider as there isn't much space for a lot of labels.

                      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                        @Morphoice I'll send you an example when I'm back home in a few hours

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

                        MorphoiceM 1 Reply Last reply Reply Quote 0
                        • MorphoiceM
                          Morphoice @d.healey
                          last edited by

                          @d-healey preem! thanks

                          https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                            I'm using a sinewave gen in this example but will work with a sampler just the same.

                            Peek 2024-12-01 17-40.gif

                            HiseSnippet 1418.3oc2W8taaTDDeujbUXWnPqp.93JK9fSIjZ67uFppZRiiKQD2ZhSaAEEUs4t4rWxd6db25jXppDO.7XwC.OJ8MnL6d9huiXERs.p.+AGO+cmc142LS5Dq7fjDULwo79Ci.hyG51cnT2eq9LtjrSShyMbayRzPLMk0iFFwRR.ehiyrO1vvozbD6m27vGwDLoGLlEg7bE2C1kGx0i41YiukKDsX9v97vbZu7F63ojaoDpAX7LqaMRDy6XVO3ILiZy3R9FVRehycbqsxp.r1RA99rkVxe0UWc86s9xqWmETaY1Q0Wc8kar7ZMt2ZADmqssOWqh6pYZHAc5iT9C61WcpL8.dNOgej.LD0IcwSNkMYq9bgemrjSBg331YbpZ1zT0scay84myebJ6SrBnisHeRyYlKKjp+NDRN4Bo4RCoa510KlGoGKwDOW2cGI9BFvv2l7gRptjYt0rtaoPMj5ECYGCshQhysn5p0ps.E+Z96WtL99jnomvhosDJllK6sOW.0oOfl4fdfdKUXjRhDUqTPqJi8ffEjyFuX.yE6p7XhcUpi2T52B.QUT8B1uXBnufRnmLtE+yhwPOtoRs0.omlqjUq3GyNsMSGyOqCvNtMfBqr.MHSduEnpi9w4K+pxkLWIFFRH8hLLbt+HVm.wXAHRUtzcuK8wflp6CYrop.JSHrrhvCHgVMYPnkzDGfhdDKgiArX37kKEnhoUOixk1CwpOxsTlu9xGPOCOG7fx3b2GLVyEEfrmteVfzDuX1y4HDgzKVMP5WtTOSBJE9T0XHWCgojXFBkFfnt8LpB96AdZlrm.pxVftx7WvsB3DPbYdrwk3xCXGT6vEnrCpa+twgz6jkwLzKc3gom4qm+9YOETk7IJM7TYU6qQ4WWl9mEEDLQYlZnXkP.wSTroCS7kYXU4fvif3EvhZw.3bEQDUQX50tZvTuzR5bJpj6H45mFAinaoD9F3m42WDTSFgIve8rcZxzLCNeDOTuHHVyMgiSS3DryZJpujaSH4XsJxp6HvG1JWOpMUJNOOVhvwH3icK.uHmMtU7OrwvyI9kuaiQAPVOl+DjhbTurl1ktVVi+wkJFtyeqO6sE41vv92fe0x1dQmopi6qJSoUNOeriekulVoKWBzWfEPH7ShUQ3iR8JKXTbGrt6LTkuptkDyrB0ouPEebBN3.PAALQBXk0E5Eh2fcA+t7e1Hp1h0rBdVTSviMzTmjiaS74KO+Upct9IPWL78.rcuTBhjhGywvosXdXHZc1RVlcX99XRdzAWejiLkHsY1rXNti7p8lAFee.xkRsBoz532GV90jS49ZbPnqSeGBoOv60WanZfoRMbl9huFjKNp.GRo7GHLoy7StLyzGI.wIEFWXFIHS35g4m4+NLNq1kNN6pFh2zsCW60exw3LSHFQDz+Dw3nk.9H2sCBvVeiCv4ba88S6D+q9weizi+5tF3gckM6g+otSBtbIas86W0s1htxas8TbPvIv9wLYRjJofi6Bg78w1SI4YhPpVwvOsm40LO+sTr3IJ5MOrEdImnMcY5Aw1xhMCw4R5BkAyV7cXtqVK8hHhb5OgUxl68vVh+8.qdOh7KrHaorXrKOLR.aKwEQvwd1X7V3bt.1.gNiawB61JoJpuRx8x+puGfCq50ChyG6S7BsoViaSMlys2XOP.r7UvewF6hUdrXLOASYt3ceo9I9d84togK0fFo+2si8r++tiMtbrYAqzMlvYzOYPXw0GLysmwzrKktlgNsSoz2R7V7yHg0MzNiDVOS3+JmQHyKV8RuzclM0oefkCduk1+47R3RgHMsNwtGc92xPrK2K87J5pKXXio0vklVCWdZMbko0vUmVCWaZM7d+0FZFBs4.sJLEZRHs6rscebGmskLrJ2hHH+AH7WE7B
                            

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

                            1 Reply Last reply Reply Quote 0
                            • DabDabD
                              DabDab
                              last edited by

                              @d-healey How Can I change it to vertical . from bottom to Top. My Snippet only doing the opposite. How to invert it ?

                              HiseSnippet 1428.3oc2Ws0SabDEdVfMp1oMoIJpsOUMxpOXRcId4hIznn.AiSQERbwjjVgPQC6dV6oL6Lt6NFvMJR8k9P+20eJQ8OP5Yl0FuavgPcSpZKOrv457Mm4bilwJeHIQESbJta+t.w4Cca0Wp6rdGFWR1rNw4JtayRzPLMk0862kkj.ADGmoefggSgYH1ed48tOSvj9vHVDxSTbeXKdDWOhayU+VtPzfE.6xixn8hqtouRttRn5g3YZ2pjtL+CYsgGxLpMkK4aXIcHN2zs5R0.X4EBCBXKrPPsZ0V41qr3JdrvpKxNvq1JKN+hKO+sWNj3boMB3ZUbKMSCIDmYtuJneqNpikoGvS3I7CDfgvizBO4T1MTh.yUzvkrdGtHn4v.UBg331bTXa5zv1Mb2lGvOk+nv2GaEPGYQ1.nyT4g2z4fmWV3UMC7FCjbx.oYRgz0ba4Gy6pGIwfmK6toDeMCY36TVnjpKYpqNs65JTCodtH1gPiXj3TKJWqZ0JT7yr2oXQ7sJQSOhESaHTLMW1dWt.7n2kNzAsA85pntJIRTtTNsJMxCBVXFa7iALVrkxmI1RoNbMYPC.DkQ0yY+bIf9LJgdx3V7WyECs4lr1F8j9ZtRVtTPL63sY5X9IMA1gaCnvRUngCk2tBUcvONawmWrf4JwPHgzywP3bmArNBhwjQjpXgacK5C.MU2AFxlpBoLgvxpKd.IzxI8hrjFb.J5ArDNBXQ+YKVHTESKeBkKsGhUejagg95KuK8D7bvCZHmac2QZNm.js0cFBj53EydNGfUKsiU8jAEKz1DfRKkJaLjqgnTRLBgRCwJvcLpBA6.9Zlrs.JypPWZ1y3VAbDHNOON+43x8X6Uc+JT1dd1uya9ldktIauE1e+JdnwuX16L7cfpjOTogGIKaeJJ9hhzWWTX3XkYRfhUBADOVwlVMwmmgkk8hN.hqfYzhdvoJhkS4qQcey0nYag3mlOmQQkbSIW+ntf7M0XgLnH.+qGuYcllYJrGvC0qKDq4FH3TGNBaqlVlWvsNjbnV00p6fpMrOtdPeozB6rEODNVweU2b0SjSF0G9GVs+oD+x2s5..LroxqUCQNn8vN1Etzvt9ixMLbm85e5qxycdC6+3W+MKa6EcpxNtOuHkV5z3wlAk9ZZoVbIPeJlxf0aRLuAeH7JUwn3lXh1InJekmkDaYKTG+TU7gI3TC.EDxDIfUVKncDdC1BBZw+YinpyU0J3wcqC9r9lbiLbqiOYY4uT0S0OAZgv2Gv96RIHRxeLGBG2f4iPz5rErLaxBBvf7fC1afiLoEayrQwLbG3U6MCL9dOjKkZERod328K9Bxw7.MNEz04ywfWGf2ti1PUygPzvI5y9ZPN6rAbpjJnmvDNyNpxLPef.r1H27AyL.YBW2O6.+2YyutnP7ZtM4Z+NiGiSMFLhUPuOv3fo9ej6FggXutQ.bF2Fe+6mQ7YO9qjd7W10TdX2Wyd3eh63JWNmU198K5Jacuvqr8Hry+QvtwLYRWURNG2Bh36hsmRxxDKoZDC+zNlWyr7WWwhGqnWduF3kbr1zho6EaSKVKBGDoykFL84sIn2DtI3L+qaSv+CTrmaY0BCwXKdTWArgDW1.mzYw30wQagrdB8Pt4yk2VIUc6njb+rOz6.37o1sg3rXerWn0zZbioQbtwp6.BfkMo8KVcKLYiEiwIXBiEd+kWberuWelaJbolBP5em2sYtXuamel+6jF1S++6F13xvl8qRWXBGQ+vdQ42dvL1dJSutT5pF5zFkx.KwqveFHzyP6LPn2Pg+ibFQL+X0y7SWS1jy9AVN38VZ+GyKf6DhzTOhc04rukQXGum46m2Umwv4mTCWXRMbwI0vklTCqMoFt7jZ3se6FZFHsVOsJJszjP1t4F10wcb1PxvrbaEA4OwjfFP9
                              

                              Bollywood Music Producer and Trance Producer.

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

                                @DabDab you need to subtract from the height because y0 is the top of the component. I'll make an example in a little while

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

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

                                  Here you go, this handles both vertical and horizontal

                                  HiseSnippet 1453.3oc2W0saaTDEd13rUXWnPqp.tbjEW3TbS8FmeZnT0jlDWrHo0Dm1BJJpZxtm0dH6NiY2wIwTUI3ddV3ofG.dT5aP4Lyt1d2F2zfEEQwW3jy24m4Lm47maEIcg3XYDwpzdC5ADqOzt8.gp6FcYbAo4lDqqXuCKVAQzDn6OnGKNF7HVVEdfFvp3rDymWdu6yBXBWXLDg7DI2E1lGxUiQas12xCBZv7f83gYjdw0Z5JEaHCj8Q+ofcMROl6QrNvCYZwlwl7Mr3tDqaXWaokAXk59ddr508Vd4kW81qt3pNL+ZKxNzY4UWbgEWYgauhOw5Ra4wUxn1JlBhIVydeo2f1ckmHRNfmvi4GF.ZBGRa7jSfaHC7zWQMJYit7.uVCCTwDhkcqwgsBIgsqauC2iOBeb36SLLni0Ha.zZl7tWgbtmSV2qVF2aBtjUFWZ1DW5p1sci38Ti4n8mKa2Tful9L7cJqqjHKYlesf8FRTBgZ9P1QPiHjXjFUVtVspT7q4tSoR3aUrhdLKh1HPxTbQm83AfC8tzgFnCn1PF1SJPhJkyIU4wVHf4mQG2H.iEaKcYAaKkGstvqA.AUPwyo+7wf5LBgVRaV7OyGAc35r1F8EtJtTTorWD6jcXpH9os.1Q6.HyxUo9C42oJUd3ONWomWpn9JwPWBommgtycRgNFhvjQ7.JdqaQe.nnptvPTpzmxBBLP8P6GSqD2OzPpcCPROjEyQ+MXvbkJ5KinUNkxElyvHOhVbns9x6ROEOzhkFgbq6NVx4C.QGUWT.iirIduLmygXwRmHYegWohczwmjJoJZE4JHLgDCPHWer.bWsnf2tfqhI5D.UXUoKM2YLa.bLDbdVbgDc39zDFwOAhT5qp9J8FNp8Y6W6fpT190Ofdyj+biggRM7BCYNB8fTmCBhgKfccNHwL4Ma8CRMyKl6NCe4oRwCkJ3QhJlG+RunD80Y46OQd5T1HYP.DMQ15laQmmhUD8CODhph0PA8gQBhEv46JX+l6JjsokaRETFAkhlBt5Q8.wapUFIsrC+uG2bSlhoakjhgx0S+RpcAqMgiwF4IMVJZuIDejR1yHaZ8MN4Pk1ILoUR1xUBG6w7w14pfImNty+Or1fQD+x2sVpCLrM1qU0RNryvYDEuzv4LiSG0nycsO6U4QWPC+GvuYfMWzYpXY+7RTZ4Qwildk+JZ41bAPeJlzfk3BLyAeHbJWUKXSLW6TTja5XHwgDAxSdpL5nXbNEfL7YXxogWanSHdC1F7Zy+YMqZyWyv3w81DbYCz4FYP2DexxhuTsQxGCsQ22EvIJBAl7m+XNBNoAyEcQiwpa.aw77vfb5A6jZHcZwNLSTLCZpUM2LPa68QTJ0vjRcvuOnzKHmv8T3bWaquFCdcAdmtJM0uaQHJ3T0YeMHmcZDNGT50OPGNyNbTuBQJCr1H2DI8TGQLWMH6JF+iMw7h5hW0tEW41cx93LSvGwJn2E9X5dFej8V99X6twN3r1M992MKUj83uRxweYac4gYCQyg+o1Spb4bVR7OunKI16Buj3ivl+GC6EwDw8jw4LbaHjuG1dJNKHVR0HB9oc0ulYw2PxhlHqWduF3kbh5zlo5GYRKVODmEoxkFT3718zYJ28b1+ys646AE64VOt3PerMOrW.rk.2uAmzY7wqgi17Y8CTCQymKuiTH60UJ3tYen2Ev4Sc5.QY88IdgVWovkzFib801EB.V1j1uXsswjMVDFmfoLV3729mJLw2qO2Nwco5BP56uMoK7+6lz3Nv5cpRVRBGK+v9g42XPOpdFc+sD5ZZ5jliBOCwqvOoLczzVoLcFx7ekyHj4FIelaxpw57zOvff2ag4m+WD2CDooNDy5xYeKCwtbOy0MuoNihKLsJVeZUbwoUwklVEWdZUbkoUwa+1UTODZ89JYXRoIgrSqsLqfaYskfgY4lJBxeAHCfHH.
                                  

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

                                  DabDabD 1 Reply Last reply Reply Quote 1
                                  • DabDabD
                                    DabDab @d.healey
                                    last edited by

                                    @d-healey Understood my mistakes.

                                    Bollywood Music Producer and Trance Producer.

                                    MorphoiceM 1 Reply Last reply Reply Quote 0
                                    • MorphoiceM
                                      Morphoice @DabDab
                                      last edited by Morphoice

                                      @d-healey Thanks Dan! The example works well, yet when I implement it into my plugin, I seem to be unable to assign the look and feel. I must have mistyped something and can't see the mistake. Bad night.

                                      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                                        @Morphoice said in only when plugin is visible?:

                                        Thanks Dan!

                                        Dave ;)

                                        @Morphoice said in only when plugin is visible?:

                                        I must have mistyped something and can't see the mistake.

                                        Show me your code

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

                                        MorphoiceM 2 Replies Last reply Reply Quote 0
                                        • griffinboyG
                                          griffinboy @Morphoice
                                          last edited by

                                          @Morphoice

                                          I made a post about this where I posted a code snippet that will completely bypass a timer when the ui is closed

                                          1 Reply Last reply Reply Quote 1
                                          • MorphoiceM
                                            Morphoice @d.healey
                                            last edited by

                                            @d-healey why am I saying Dan all the time? It'll take me a while to get that fixed in my head lol I apologize

                                            const volumeMeters	 	= Content.getAllComponents("Meter");
                                            // Meter1, Meter2 etc.
                                            
                                            const var laf_VolumeMeter = Content.createLocalLookAndFeel();
                                            laf_VolumeMeter.registerFunction("drawMatrixPeakMeter", function(g, obj)
                                            {
                                            	var a = obj.area;
                                            	var average;
                                            
                                            	// Get the average of all the peaks (sum the stereo basically)
                                            	for (x in obj.peaks)
                                            		average += x;
                                            		
                                            	average /= obj.peaks.length;
                                            	
                                            	// Draw the background
                                            	g.setColour(obj.itemColour);
                                            	g.fillRoundedRectangle(a, 5);
                                            	
                                            	// Draw the level
                                            	g.setColour(obj.itemColour2);
                                            	
                                            	if (obj.isVertical)
                                            		g.fillRoundedRectangle([a[0], a[3] - a[3] * average, a[2], a[3] * average], 5);
                                            	else
                                            		g.fillRoundedRectangle([a[0], a[1], a[2] * average, a[3]], 5);
                                            });
                                            
                                            for (v in volumeMeters) {
                                            	v.setLocalLookAndFeel(laf_VolumeMeter);
                                            }
                                            
                                            

                                            the Meter1..x floating tiles have these Data settings

                                            {
                                              "ProcessorId": "Hat",
                                              "Index": -1,
                                              "FollowWorkspace": false,
                                              "SegmentLedSize": 0.0,
                                              "UpDecayTime": 0.0,
                                              "DownDecayTime": 500.0,
                                              "UseSourceChannels": false,
                                              "SkewFactor": 0.3,
                                              "PaddingSize": 1.0,
                                              "ShowMaxPeak": 1.0,
                                              "ChannelIndexes": [
                                                0,
                                                1
                                              ]
                                            }
                                            

                                            They look unchanged and all meters react to all samplers, although every one has its own ProcessorID set to a specific sampler. sigh

                                            https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                                            d.healeyD 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            16

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.2k

                                            Posts