HISE Logo Forum
    • Categories
    • Register
    • Login

    How to create and animate a signal/gain custom meter in GUI?

    Scheduled Pinned Locked Moved General Questions
    gain displayguimeter
    17 Posts 6 Posters 2.6k 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.
    • gorangroovesG
      gorangrooves @Christoph Hart
      last edited by

      @christoph-hart said in How to create and animate a signal/gain custom meter in GUI?:

      Master Chain

      Thank you.

      I am having troubles getting your code to work. What am I looking for to get the following line setup correctly?

      // Grab the module you want to meter
      const var MasterChain = Synth.getChildSynth("Master Chain");

      I have a Sampler titled KICK, which I want to meter. Is this what I need to specify and if so, what would the exact syntax be? If not, where from do I get the correct name for a particular Sampler?

      I am getting an error that getCurrentLevel is Uknown function.

      Thank you.

      Goran Rista
      https://gorangrooves.com

      Handy Drums and Handy Grooves
      https://library.gorangrooves.com

      1 Reply Last reply Reply Quote 0
      • gorangroovesG
        gorangrooves
        last edited by

        Hey guys,
        after spending several hours banging my head on this, I am no closer to making this work than I was at the beginning. 😞 I read and re-read everything several times.

        I messed around with both the paint technique and filmstrip, unsuccessfully. At this stage I prefer to animate a filmstrip, as it will be a lot more straightforward for me.

        I made a slider and assigned a filmstrip to it. It displays as it should and it works by dragging it with the mouse. It is located on the main canvas.
        Now the challenge for me is to make it "dance" by reacting to incoming level. It doesn't need a separate left/right. Just the overall level. It is not connected to processorid or parameterid.

        Here are the specific labels I used:

        Sampler- KICK
        slider with the meter filmstrip- Knob13

        I'd like to see the "Knob13" display the signal output level of Sampler KICK.

        @Christoph-Hart :folded_hands_light_skin_tone: Can you please give me code that I can copy+paste to see this magic happen? :folded_hands_light_skin_tone:

        Once I have this one channel going, I will be able to easily replicate to the other channels.

        Thanks so much!

        Goran Rista
        https://gorangrooves.com

        Handy Drums and Handy Grooves
        https://library.gorangrooves.com

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

          @gorangrooves You might need to change the response of the slider. In the same properties window as you load in the filmstrip, under component specific properties, try selecting something like min -100, max 0. See if that helps. Might be an idea to export where you're up to as a snippet and post here if you're still having no joy.

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

            Make sure you've got it set to vertical in the same section too, not knob.

            gorangroovesG 1 Reply Last reply Reply Quote 0
            • gorangroovesG
              gorangrooves @A Former User
              last edited by

              @duno I can not make the filmstrip show up if I set the style as vertical. It only shows up when used within Knob style.
              While I was able to see your example from hisesnippet, I wasn't able to get anything connected properly for my needs.
              My brain hurts at this point ☺

              Goran Rista
              https://gorangrooves.com

              Handy Drums and Handy Grooves
              https://library.gorangrooves.com

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

                Ha, I know how you feel! Gave you some bad info there, sorry. Keep it on knob for filmstrip, but try taking the min / max down to -100 to 0 or something, and play with the middle position too. And make sure all your components and modules that you're wanting to control are declared, and nothings spelt wrong, ie space where there shouldn't be one, or caps etc. If you right click on them you can copy a variable direct from there, and just paste it into your script.

                Doesn't take long to wrap your head around whats going on, just look through as many snippets and demos as you can to see how everything connected.

                1 Reply Last reply Reply Quote 0
                • gorangroovesG
                  gorangrooves
                  last edited by

                  Hey guys,
                  So, I managed to get a single meter working successfully. Thank you @A-Former-User and @Christoph-Hart !

                  I am struggling with replicating that single meter for other channels (samplers). I get the following error message:

                  Interface:! Line 62, column 11: const var declaration must be on global level
                  

                  The line in question is this:

                  const var StereoLevel = Content.getComponent("SnareMeter");
                  

                  The working slider id is KickMeter and the sampler ID I am metering is KICK.
                  I created a new slider with ID SnareMeter and it is supposed to meter sampler id
                  SNARE.

                  Here is the full script I tweaked and changed labels to make a bit clearer as to what is what.

                  // KICK METER
                  
                  const var StereoLevel = Content.getComponent("KickMeter");
                  const var masterMeterLeft = Synth.getChildSynth("KICK");
                  const var masterMeterRight = Synth.getChildSynth("KICK");
                  
                  // Use this variable to update the change rate 
                  // (0.7 - 0.99, higher = slower decay)
                  const var DECAY_RATE = 0.9;
                  
                      var PeakL = 0;
                      var PeakR = 0;
                  
                  const var t = Engine.createTimerObject();
                  
                  
                  t.setTimerCallback(function()
                  
                  {
                      var PeakL = masterMeterLeft.getCurrentLevel(1);
                      var PeakR = masterMeterRight.getCurrentLevel(0);
                  
                  PeakL = Engine.getDecibelsForGainFactor(PeakL);
                  PeakR = Engine.getDecibelsForGainFactor(PeakR);
                  
                  // Combine left and right channels to measure the sum
                      var peak = Math.max(PeakL, PeakR);
                      
                    
                  StereoLevel.setValue(peak);
                  });
                  
                  t.startTimer(50);
                  }
                  
                  1. What do I need to change in order to get it working for subsequent channels (samplers)?

                  2. As you can see, I used const DECAY_RATE, but the following line of code in the script, later on, did not work:

                  this.data.currentLevel *= DECAY_RATE;
                  

                  What needs to be changed here for decay to work properly?

                  Thanks a lot!

                  Goran Rista
                  https://gorangrooves.com

                  Handy Drums and Handy Grooves
                  https://library.gorangrooves.com

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

                    This isn't the full script, you are opening a bracket somewhere before that.

                    The error you are seeing is created like this:

                    if(something)
                    {
                        const var s = 2; // const var must be on global level
                    }
                    
                    const var s2 = ok;
                    

                    The reason for this is that a const variable slot MUST be declared and can't be depending on the value of something.

                    Also there are a few irregularities - you're creating a timer object which has no data property.

                    I'd recommend you post a full snippet with the thing you want to show - it's impossible to spot the error with a partial code example like this.

                    gorangroovesG 1 Reply Last reply Reply Quote 0
                    • gorangroovesG
                      gorangrooves @Christoph Hart
                      last edited by

                      @Christoph-Hart Thanks, Christoph.
                      I tried declaring the value of SnareMeter, but as soon as I try to do it, I get the same error that constant must be declared on a global level.

                      I exported my script panel as a HISE snippet:

                      HiseSnippet 7616.3oc68zzbabbkCH0HIBSZSY6MUJW6V6DlOL3FQR7E+xpTL.A.onM+J.TNQUVE4g.M.FKfYPMy.JRqnXkrNwaRkrQ6dZyM+CXqsxw8VzwspcOji6Qu9z5ZqTkOtUtj885YFL87AHlg.ThRZjFI.zc+598U+52q6d5dOUkpDMMEUtXSr+wcHbwljuxwx5MKzTTRlayhbwtB+1hZ5D0BJx5PZDUt0NtinlFoFWrXiuAVrXSbANNtO829a+h2dMwVhxUIlIk6+9C+3e+6oHUkrkTaIcyTg+rWt2UpUq0EqQ1WpMwN8r41rphbAkVJcATZb9jbcDqdWwFjcDwhMFOWrKVpljthZEcQchFWrKrlRsiqzT4dxFk+8jzjNnEA+QJtJPEYj75JspgXLlJWglRspsmEoqwwE6U1ylQLtAi3042VplTuzsYHSSyPvFBV9QrwNIzKEK5kL3nWLFz6BFn2U3qTUUpitcNHt8R7aJCxp5hfHfEsLJK2X+0SyWRtAHEmukhXs0AQZdsDyb+8Ju66Tpv92Y8c2pXoxOnrXKx8DOdtxjFcaIpNutd8YtpPYhiTm8ZSEOD00VRMZp6plnoEx5YMfS4pZvjvZYp3nNJQVe91h2krtJ7idbiDoRmL4UEVIYRiRNU7EV36QNPSRmHzRR9tSEGz6zzENTTUXst55JxoEttfU80fnWPocGEY3GIlwL+YLpIIY.dhP8txU0kTjETjMyGAVUoUhpVPdUn1a0kL6Twu+TwEf+XR1JcHxl3RhYZpq2Q6sVXgVRGnJpd77MTTEkanpnbHQadnpns5CbPs8A6lWCSmhCEDa05.niTB2HmAIrvB6s6d2bOgJk1e+M2YiJB6kemRaMm2+fE1lOcPi8DkIsX3Sh0pQSJwLl4ARozKB78EWAaoEVP3G7NU1cGKHusMM.3JnI2gnpKQz.QWarbrUCkkMy8jpo2bl2RXUPXRSnIA0gfTxZkBvEaaX.ARM4Qqudc5ebmYZG4BrTKDbAWXHKECXotjbCMen60AkWLu8kZARQGEDv9kRsHvDR5fI3nLClU3tJcxPPtrSFR5UWxHkNhpP01SCAxxls5gtciT8k5SGXxOMfriXxOsG5OSxmvzel.S+Y.jMyHlAj4oBCnZSQYH0hh5h.0az93nQXMhiIVvH+sjzzmwnoQq4XttF6fI2JReHBOvenIYz4DaAHQZKLwL5jiz60idFrSa1Z3emAy9AVVCsQy1.probmt59hjUf5AFw7oIBJ1sljRESFsubyBc0zUZaUjAgqBgAYOngCTcskKlLUxTFMwfHEiZsnpzgDLec0tDyjHGBN44Hoc6pCh.GIsV250Ipl3ncxUDa2oEoL3vjij2nkxAhsVausgTqK1Rypz5pDw1.aYakZDmYsgpXmlRUKSjqQTgR3BvpfKDqKVE7NyYyC7Zv2tBEbV7BsHhpTsZWYXftaoTUDGu2Ea3ftV3kYpFxdG8prFXF5KhhlDLcqv9hNsz4tvdzc7.RF2fzq+fkqOdcYYewCRcx9qLwBKjuVMgiAMCgpTsSgVJMjpJzjnRle948pki0Ye8gBybFKuOLMHhoMX6fTHsr9oJBbiMTU51gptNio4LrR64zhe91HTZmhU54Ri0es.R3c2rv6Jrco8KUVXsRar4N8wAnJfykDksHG5vY.mD56JU8taSfBRoVFiTzfpn4rEoNZphF2EEZz+e5u.vALo+PVFM0OPPor3apQDzaJogUgjHDBhfthP2N0fdcP5Dps8FDAU72T.Rjb9kElSH47qt5UEZBMDQEZIsVJ2C9RMRUwimkEqJVpP9acmx42uDTJ.HZ6hN4hYtGQ7tagoeMmoU1LM1JBoGSGiqB8z0oQHpt6Ae.opdBKMXp1AMidt1ZoMmXVr.22ai6hiSYWcUwgFoRvDol0GryMy1CTlwSX0HlXNTphjpRGPZosthJFjrggmDzxgfX0.AAfx8jhfh0AXW2VnJinbMAUpFfoEDMTl1lHp0U0Pnp0ssMI0ApInA2VDTUZKdjApbUgdM.VN7+mJNidMxmeOzJPBDbZrGFHCHAzEUMjAIL7r4AL8gX5AAc0Xifvr.U1Ie4R8sOlOEhoZXLbsihNYWPlG+9wmH9Ch6Nm508KKSKcs.L2mbMHo9CVB4tsOfnZYcDJm18jzq1zLcP8aB.zIfmphPmNzd0aA+.sgNwDR0ELKmv0uNMOZ4o4Y5TFxxSLygFSTvLVMy0vR.+6AXQAQMQ3TTUeMy5xnLPuq6dMqp7An36Abwtfy4ufu+yeA6zqT0v1GSAUj2TVReWHz19MqFblFL43hkzj0BEUmN6Fup4raPp8dRj60QQUmSpFN8FV+LEGkTrm4Hy5isRlxrR1RD5VQg+x7zu2C3o3uQ9cJdKghku41UBQEj1pBdM92Y2arivZ6tyMxusPk8u0Vk7VMurY0TokD3WBsdljGGWvLAVJgNIZAoF.bSF7qeXphI4ugnt1vUC6qzN0PWCoG5ZHyPWCYGtZnL78goFdE9BphZMICk33042Er5qV331fiyCUM8xlS56vTGuJ+dDUvUQMv5YnqGioohVOwo8U1tqNI.848A9WxnmxouBhS6mLLvi8RFR3SOjvmYHgO6v.O163zC+TV8MN8UwK2qmwouNllQe9zWKSZ1yJj0.S+pWxPcDcI8zVAT8wgrBROrUPlgsBxNTU.Um7zWAubOkxSec7J1Zkm9J4JrpkArZ75XyKylRO+itH+cASugvwnLVPdIdMznaH.Mqci1DzuCAjKZCoNnXGBHWxAjoCAjK6.xLg.xUb.Y1P.4p1PpBh+f.4DlN7lrmRAeUC01v.cO8gWhWAUXEpdb6v.eZashNft57AxP4E4wPZ7QY9lahypEtpnlAPXOKQPZFyDowZjNAeQh1c0U5.XduojAR1I9tYawFDS9L86o3NxtA+x29X1VutTKy0hdId2KQ46nzTVXME4lhsEjrV3QAbxIZnpzUt17ePmFbz4quWM93+obFyWuca7KxogSTocB2JWGkNc6rqLcBHJzB6QFK13bLTT7.G0DCkUJmMk83ebNmH1u5ezMh8P4bVScLj1E+yvevjsWQML0LYxPK7gVgIFabhLNaS0bixS5THPCW0THP+tCTkiyFU+c+7bChG9vxNP0s2daePUuollMYbhvQ8xCTzw45rCE+NPQEL6VVrlTWMVryHcbhsYSEUP6QuubeUzmf2bMYYn3G+gLBGtL4bsDNLbIW7BcO5SqkyfTdC99sjxbrLq+3e7Op5kY8EewW7uXp92VSGH.iNMwlwSmf6wrn5y2QtAml8ztaiTe1aKo8dXeVHSTyPS7Pxlx6oRzH5t0Tt7.5txx23tAKea6b1cWeSOXJKaXtVJMTnnqS9IWMO5VMM4mWjGggyGcZejwX3cjZR5ZloYiwS9HFL98+jbN4KRn6Eh6IpBz.NzdrXiYz5SXUgdDII8PnGPay4pZ.vbo0v41IW1ilakSR.4jQj6G5gQrVtSRpM4.mCFFolJqT6cxUGrqaH0lf2beevI1RpgbaZUCbdRccN6kpxa+VmSriSRoSGO8QVm1jN6+VzHM8iaYfGFK1lC48KMvoIxlF26m3jFchSOpqO3jAo32TL4Oo6GaigFtHOtQY37iRYIpo0M29SFDE6BaapJylDqX7wefSRbvCW74e9m6mMXHk+Lm8DDZLX9z74OPoKLPQChwfETu.h8uweeyk5rywzICeGEcikhbFykMEmTxsfjj0H0J0VTpkyU+CxE5wo4do7VqqTqZEculjlaSmaVdKWM.3CRstUoreG.bSMhwZ4R6cZsPh3LshKWKqjxoBw+9m3VgX5ixstGQWxb1rtLHqqa2tbVcCr4yuwa7F+YWCKeB5w1iECAqJcDQ0HAaA8CyyHn+xOzkt7G6w0gOS0st.mWcAqQM8pK3CAYUE95YTrEBwnGYXsC85Lz0C2gYziukGipsQFybLN24cvCcOLhbxdGI2AOlUp7ZAa1iYDKaw1+614ZKUqVKxdJfFKncyZaWta6J3PF1Nw7P2VjdXIOVjNHWMUwFEkTIUMpv378FqRRauVcaHI6XnpNVy1+lT+4w0DhqiUALRit+Q0v9fne96ghSLLAnq9gfXxwXgtGna0SdDcMJ6YtdPkdfi3UiTWraKik6hcRJOYQl0.NnHQvTlvJFuR.mBea4nvANkiiNBO.xcNOx8GKlqeLr9pNDLIpC8iKwSWsOeUP5ul7oSlEL4ii0GgQ7z9rR73pGXQ2RhO8.WtGFZ4huJ.8SXcJ35rBzKyeiMm6F422WI5nQ9vr5S1xmo0eZ18wOgVnEStjxmMxmKwu+taKj5rU7j1i34QGeVIdBTeifLzmGYXtp4BOyN7VG8Q7j9rU7jwq0sOJnNQL5Db8iCNZLu4TsvkntfOd43iXHSn7aYjIdx5Q7r2O87i3I.b6QliCtrx5Qr899J1xNj8dlNXq3OyXO+ryJiaCgP3D319KdBnPvqYRWBgKxWdyhkNyrf4dOSXKF9Cex47dIAaRQ6iXn+xyAIfbab603KTNekaTpxcJr6N6meycJU9LSZ46lSwVj8O+KexKxBRemQ0PSm19TelnSQ1D7Et01qkeqJCof5UC5d+wVDciGcZEQo8HhLZBy3kE5U9Qa2ogUZ30QPA2Qf4P138Uk0OYjwDF7J7NXAijAk7YGWYK899+ZmRuStACfZ44jdniLYuCQ4j76UpbgaVoxl6tiuRQVIxTAYuqwLMi6vHIlti6HHutGq1q5wOh452h7zFZJOqvyInx52rxcYdiWcXNcEkV5R3pmyij.80hne9LDb82oBzN0iYZMOvI6Z33EAZjWWRj21iD4Z4F7bW0iM5+biNB3WLaLQF1U6QI6JP80bwt9NdXWuUt.LyP83WAY9VuHkzC3puxrALs4SI0O2ym7cFZBHaJDblzt3LO93mQ3LoOq4LYbwYd+O5oMm45Aiyj4rlyj0Emo4O8oMmI.Fo8YJAFwbldazYF6L+rye5LWavwoORYLN2A217l+mO4bOuYZ9xJcwc6.9hyoJczYHWx0lT2lM869km6YS8IrzQJ+wyFv2lCczu1IGJTA23Gw8DfEGv3M5wBCFSxw6WfMC5u8Qm6sOOfnmOEpRu5Ir8+68dYy55bQFlTta6NvrTdluSwbm7VTv6dwqE9R0NGknlymY8va7t49tmtY2XevM40TNBwp9En9lO18F3qsDS125wsEcrGbaqTybSUSeQkGIBhIMC4ykjH26ytSbBjjHb3d+4ImMxvQvbVvHQcK2FESdD6qUDyxAdWmBhPYX8ENwTP4z1u+ULbZsHN8YBmNsaN8iNJhSelvoy3Qm9GGwoOS3zYcyo+u9IQb5QOm19cDkYgJ+3HN8nlS65kokYQq9jHl8nlY69sNlwb8uLhaOp41de8rs4Ae1uJhee532SFv2i8iXmsAlW20xt2xmeWOyNwJ8dO+nuC7CdQo7+Exx46qyR4FvKok+unYSNvW6dlIw3G5jPCxpoY815Gx2qLeHMOjQ.3yggRyxPoepTXozQLsYofPOuBFwD5hLDZG0yIDJ83UXDSnKwZP7dmeHzziZBcY1NoO37CglYTSnqvPn+8+jyODZ1QMgtJquSebXHz.N5yYDuv5zCYvDp84GBSnl+7vO.i8wNhqyqf88P4KdVP4ghXYcaXuegSh0fbXOGTb4V1s8PPKcVPPgd8zNoSmElUZ7W4G4ZcrsDJ+S24ICivmiAEuuGySvadfXhjJer+jwAJBer2B9hEZewOdbiFpGZewGEiymWTYuuJ6oYS1+yHjD458tWyb.gbQuxoS38t2wo7rAkzXLSJIMKk7m3bSIILoDORPaNiiW19qv657b2wYDh06muS9x+wi8kuXkrwqq+EwWW+G3mBZeI7ocR3oMn7WgyOJ+pwFVJeZdmm85iHBer+0XlGTAuXb5oSuzex2Voqr91cwMQZKIWD8H57U2IpQu5AdKgefwoYbx4MNG7wusr0WSY847o6kTuxkF+31CoFZFCMzqE6rQCcJdlqwfyv9kC5XxhMTrU96X2b4eqbm.sXenJjvyrJXcNVOmTUEYW6Y2SXqErpmgZ9N4BCkvFq0izNETx2vmiGhZRgjJ9NCfJFzIYwR8amLb5ohFPWTWTQHQ5IFz46FiGz+CL372+S7rEU91dPOqdcyg3o1bF6XkS6t79g48PJ4yw48h2ZZdv.D35gty6DL7kBvLCbhqXu7svKgJYMI8iYOU4NStnvBJ5dE98vSrb+w2w7AeAeUNqw2wsrtUBFlqptMxdA90+9Ogui0F257CD26eDn4MXZN2IfobhTi6DoFOXGb59vSLaEysaXru1NcaaXr2zcL7TYO1z3KAqwuSh+F89rBLxcueXlYJ1LS4JyzrYl1UlYXyLiqLyxlYVWYtHalK5JykXybIWYtLalK6JyUXybEWYtJalq5lI3fEkxCOxISxMWJkC1TJ27oTNXTobyoRQ4NXOHZ1t4Uon7mXVY2iaw1y3uZeqS2QKm2LbQx3J+y7M3I3WJiz+32kx3q2mKkwhNtTFiyWutX5phqjAvQBdk84LNsGmy1QU6T+c4X7HzN42OmIoTlzgHpuswJTXgk4JWld2t3FpuZNp4q8UEqdWfavRW6JSfNc5rVZKnpnoUGnJZc43babutpMPVlcJkIfy4ZNSC5.x10CEV2TifczkpZ0K0tzzVI49hzN6eS9zYm24eNbW3+p+swutZA5uM.IU3AIc3AIS3AIa3AYwvCxRgGjkCEHFJZaK1A6z7M3ugnbsiuSQ0ts0tCdvsdGiCt06Pmfg6PWxG22EFWJXlzglf5YESIWSpQul2HE1Ai5ofRoGl6xTeFk5hmqunRex4tz3ACc8gCN1ddtyamluhDJcJIeHXPCRwX39hFuBx8RkEI2VQVoSSEYopNsd.VCZzfnxlnuzSdccQTEiEVHfXMBqizaIIiwH6znHWHXEmrmF9csx5q35qxaftB33BBmq7x8xFnMtLwsTphsNhvekd+TnG4jN8fQWvrtoME6z1DD+p5NGQvbEzcJY9x21pQo0gQb0C11zgo1czIRGIA.L9yZA.b5MFLPm9875+7Dwmede84eLW97a4Tou972ykR+7n7jTMfP0oCUITAueuNmGH6j7TOADPmVeZgpOIjcVSLFpxxbcQxwd7pOFcO4v1kUCbDGQow34Bd7DVuK6if.J5Dna4cLfh5qjsVZxHHfhNmp.JD5W.Ee4aGEPQT.EAHfhu4.BnvX+UEEQQTDECcDEnKompHJd35QQTbZin3uvuHJhBn34z.JdhZ5Jxg6Wrc3t2ogzSLOtQd74NWsil69HWsGIycOc23+Bkm1il4+5BVa8OycOYubP74U3KzT4tvXTz7x3.cLRiar+uKwatQkv6c7aP2LElWM7Lo+8vccQhkRlz3djGLKooSue5gQ+ZPzEttfUgge0amjjXFirmY1qwBhguw8GFi7mAaJOPkdPfkdF2nXMRUwi6KXzbovDegEDDxKKjWUEJujlfXKMEAQAZMIJqeUAvTkLdCtKoKbOvhsvADA7trAFskTS.+eUAEYlVlbnNt21f19Gb6qQq+1hf3PqqJAqilhZBDYktMZJnAJFhMHB5PCdnhTMnsaYtW5Dp0E2XeB5MIBxJ5jckEpB4hWhMwMaf4wyTB0CIIVJ6rWqdWY5qgEfJ6PKdhYieeiMJGVksDrt94E1FzTfFEYHXI2gldhYE91BotlA.z+SpNyMVuIWFggdbbBE+G8iD7jeZlBLKsVLQAazfx3oEAPE5OXf4Z1k19a.hvBz0ERNqclL0O9GfWmu08DOVSnqFgx6pqnJ.FlDjjADPoCJGOVoqPME42TWPl.RPrTRx0HG4nl.3RfBd8MqgvZxxm0QYb03lH.5bROwlfR85fpT61fYPJtfYzPB0nn0tfTMO0Qkik0aNOUnWu9ZGWx.KrvFnSEagePue8.argPu2pNGyiPudD.WC6wmlpObAwZ0dOkVcaSPHrZrqxnEcUg4Rg1mFLSINS6S2PqXuMZiqYy3L6YUEyOgYsZTaHOE4Lr8Jnl47pyy1R62DLo.OxDzBsn5wf4iphHmGYwT6I2E+udJLPbER0kpJAH2wBnVyM1rRI1ZrpH1IGxjBmYwEMoDprDracfTKL9WvEVMvtTOvs56iFjx2qgRvv9Xao70PIOf7aVDMQgnXKzvVBI82Da5ZFJF1XroN8lEm0CGsSWslIXL8XoUOaOl7Ch61FV85tMhcXnrecXPEReOhoZthfTCYEUROwwbX+21FsHKDVckU5.8jaJMG3Hi.Lrg0PD2kP5Hf1ugGnmkG9uQqP4AIvMGs+LAyad2VH4E+9wmvYtXTC9lgIXlJpWUfds7ZUNOdaEOXdaU0XXTlBpHuorj9t.Cv52FC7XkRRtdhQ1jrIJ1ToDiOEyNIeBtzbncv2nKDfKe6KwSsZ35VJ9ObTNO2vwSaBL3uvAJ3w3jwN20PSxE7Obi.B+D7VyNnqJnT.qf3VUPZ20v54NcWzxWp+665S9N.8p4bL6P3cUpXOmXcdfWgo3du5lw8YD1cxYcPqS8bslv9FrZedggNAAKy1S9Gwhfe4uueu872JmlNoiyHn+x2l8UwO2uIm0DEvyKzVy7cjaR7EyGbWjF4tKh48cropuTPTo5GqMUNqq1XCO5MYK3aGfF2X+mw3iWXtzwK70g+qH9O7Kkf+sN9O7Gaf+C+Rd7e3WVCAXtTHPo.fRg.kB.JE.TJDnT.PoPfRA.kBAJE.D.PR.ljwKBOvGkRFec3A91FvC7Qd3A9XMnTXkC0KV0PMCUJVuPUh0JTgXcBUITJD0ArFQb.uATFwZ.gQbFPWDiADFJUFnfYhWDdfOJkI95vC7sMfG3i7vC7wZPoxBELa7hvC7QorwWGdfusA7.ejGdfOVCJ0hPAWLdQ3A9nzhwWGdfusA7.ejGdfOVCJ0RPAWJdQ3A9nzRwWGdfusA7.ejGdfOVCJ0xPAWNdQ3A9nzxwWGdfusA7.ejGdfOVCJ0JPAWIdQ3A9nzJwWGd95qvQ053i8QFWlpAR+w1jByaSPM+TfrBIbeyxGoA8hiFzDg3lO9SqcFYY+JNU.EREJTj8Ly3wZOgPwzAteHyHyLudtZQcDi5HFsl3iv0DunuqIdnXEQqIt8Zhm474ZhOezZhGsl3QqI9yPaBUia9lmaVR7G+Wxc67QuNaQKI9SkkDmdtsEs4Si17oOEcztPji1u.3nczlOMxQ6HGseVyQ6zuXr2SibzNxQ6ybGsSG4ncji1OMcztTji1iRGsyF4ncji1QNZG4n8nvQ6LOe4nMWji1QNZ+zxQ6LQNZG4ncji1O23n8hQNZG4ncji1QNZOJbzN6yUNZe49Mi1SG4ncji1m0NZmMxQ6HGsibz94FGsWJxQ6HGsibzNxQ6gyQ6KxWdyhijyI3r96mctey4lcNxqG4mcje1mo9YSuSdi7yNxO6mh9YuUje1iR+rWIxO6H+ri7yNxO6gyO6I3KbqsWK+VUFEtZKzGWs+nyMtZyE4pcjq1Ckq1u4.b0t5wsOPrkVj21QdaGMq1O23s8pQm7HQWueC6c5c5n62unvId9NbhI42qT4B2rRkM2cmnW6ynHJhhnXvQT72LfHJ5PTq1USidN.GETQTPEQmxJOmDTwxQSgezT3GME9Q9bOHetMMoLIO8JlwlY9Z7EJmuxMJU4NE1cm8yu4NkJ+j0oa2wv5T9jrelINY4SjGEOMP2Sz.7Xuva.dP2xlzNh88jNhK1G74C6hn8ahB4MJj2mSB48aMnEQSUTqYzYczymg6Nd.C280bGtapLQqh1yLA79U7If2TYeAaYzBm5c1yT06WOma0atuQj58YnSyQyZQzrVDsRgCHjo9dKLjKSl+2nPlhBYJJjoPDxTz8vvymgLcgSsOkKFExzy1gLs3KXgLEBVyRQQSdB87WJJZxnnIihlLJZxmgil7IAV5pM9Z91FSOTsgYloYgLsqLyvBYFWYlkExrtxbQVHWzUlKwB4RtxbYVHW1UlqvB4JtxbUVHW0MSvAKJkGdjSljatTJGroTt4SobvnR4lSkxAqJkadUJGLqT83VbsEqppbmpJx5pJTM1KSSAzUkEoSo.+13uERwcnXqtl81ZCgpbmpUQigyA8x7GhzgFhLgFhrgFhECMDKEZHVNzPrxI.AFWX9t5JsMFZDRXuRFlShUpm4jw49+gEQizO
                      

                      Everything shows as compiled OK, until I try to declare a new element. Please let me know what I need to add/change and where exactly. I look forward to your findings.
                      Thank you so much!

                      Goran Rista
                      https://gorangrooves.com

                      Handy Drums and Handy Grooves
                      https://library.gorangrooves.com

                      1 Reply Last reply Reply Quote 0
                      • dejansD
                        dejans
                        last edited by

                        @Christoph-Hart said in How to create and animate a signal/gain custom meter in GUI?:

                        var invPeak = Math.range(1.0 - this.data.currentLevel, 0.0, 1.0);

                        HiseSnippet 1289.3oc2W0raaaDDdojXPkRcPSQJPORXzCzEoNRtIosHH0xV+DHD+ifksZ7IiUjqj1ZxcYWtTwpAFnuF4VeM5M+HzGidLm5U2YWRIR6xnlJ2VTDBYXrye629wYlcXWA2gDFxEHixGNMffL9PydSYxwMFioLTmlJAGRBkT1Hq9Gg1dZ.NLj3hLLJ9LkEFkKgzOuYyswdXlCIUDB0mScH6P8oxToA0eN0yqM1kbH0Oi0OrdGGNqA2iGAnonYUT.14T7HxdXkYELQF2pkKUxE8jXIIDYTZat6zdi4ujEaeeZHcfGQsnFpGDnXws4dtJDqjhZLl541c1oNDgLL6lxAEi4f6YtK0kNWdJW7QZEVodjkOLJrH3UKK7plK7plG7Lx.uRwv6tl8bDz.YpFE1tsYGljHFhgWAYgUrsnB+VAyFbvBlbce7oj1BXwbOreb0p225QUqt1SVoxJUfWDgRqIXA7N25oVy7aDQ1f6GvYvB6U6ezpW25cwgP.07E3lNQR6j5ToWYuZZxTh2Y8uYqFac7IGr0gs.2qt92TCrPI2IRnET8Z6mDj1hMhxHq6HH.sqRoD6O36INRaU3kqGRjZgMvddCfDJ6gQLGIkyrWqxqpTVEkIPTxfbMhiDB3PtCYBwydH1KjnhV4G7fY1mrqfowd1kfOM1ZMEpia.HSGZfE7wmYO49VSzJgezgV1Z8eq5vs1JUrfmWE+O0S7IVYwSzxNG7g.vHWC+7mlg4RsO92UQaShCc.Dn1bgp9sM1AxXsUPHAX8ORQY8wdQDa.sUNG9SyiRrHlIs2PeDmwiVb1dbIY+DBsx4UrttpgCyUmJsRv87fPlm53MaANZyh7GPD.qpP6bCg5jqVHZ91KDy1mvINKOigbVGFUte.g815dfRJMTEpInBLUpKSuSRYZOOpKQfnP0XISnGpFso88N9BzQcZhk3Yw.BGrEADgjpPuQSxDnKZboeYyljvSk7.ssIkhHiOdw63Yy2se5E0mlt0cp6Scc8Hc4gTE0lpYiKfj5fdzebFP+4W+5eYS+rM7O9BHmNay9vngCofDSSK2sQ9b2D7pS3PDFF3bcGoP4TE6Wwru5L5f8Puj5JGmFqmWeLgNZb5kFW3WmJI9ytbn7sN0yanRwfQoxP+9kWpjIImIyHEglKUQGShPn+bKUnwN2MxCKuZ2dUIRhBE8jsspp0ICnsoYuB7FeEPt4Xuiv8tlcoRmw4i2B4fWHg6ea7lbg5JlsFND5ImB1Rlsewxd6YskBJ2IFJ21rGzJTeYjFHehds02gmPrdFgQDJRcAy47q+yOmy9NRX2OTfYgA7vqD3dDe5gPQdXVgGEB2dS9gCTujyJuAGKxU0a1rMbFy0mdXYjPmsrkOOhIuR1Qwa3qjbGnoz+al25lTrcy6MT7cCt+EiDVdFF6Q8C7HsXvHHvcGIMDZRFhi7jyklEj6xY7fwbF0I667CHRAczHhHKzy87rkTBiSkJ4d0Of3QvYye+r56.4cXwtw2ErLTQs2cpXQut9TyX3ZopEsd+nkdw2iZo+2.JGviTe.ALUsPOswdQ98fVoND.ILFLZKHynfpcX75pp0w8RYt5EWBOIJqoVajnr1Lk+mrG9XGA+Dm3gFU4xefVBbtY5O3sr4tp0V0lMvnoI7APHXhM5INNJ59K.9Iee1XI74KWBed3R3yiVBed7R3yWsD970KzG0cQaEI49wkhfftszCtaXzJc5VzeXtHVZL
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        24

                        Online

                        1.7k

                        Users

                        11.8k

                        Topics

                        102.8k

                        Posts