HISE Logo Forum
    • Categories
    • Register
    • Login

    VU Meter.

    Scheduled Pinned Locked Moved Presets / Scripts / Ideas
    6 Posts 3 Posters 74 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.
    • It_UsedI
      It_Used
      last edited by It_Used

      Hello i create a VU meter, maybe this someone is can be needed. 💕

      Screenshots:

      43cc2ba2-0bf0-4f54-898a-2276145fdc96-image.png
      fa90902a-ca67-47be-a25a-64e97d66a57d-image.png

      Snippet:

      HiseSnippet 1929.3oc4Z80aaibDmz1zHRsoMWa.t93B2WjupSgT9e5P+y4DaqbF0JVPxIoEAAGVQtRbuPsq.4J63FDf9Xet.849goeQ5Gg6aP6LKIMIkoUT7YmKoUA9O6LyN6r+lYmcmwoanzkEEICMLqdx4SXFl+Tq9mKT964S4BiC22v7tVcnQJVH46+m+8+gwiNeBMJh4YXZt7iQQLqrhg9y2+0OhFPEtrLRFFOSxcYGwGyUYT6t6ejGDzl5wNgONmzat6gtRwdx.4TvbV1x1XB08UzQrmPQwVxx3anQ9FlegEya3N1tNTul1rc1AFrsyVCYC1bSlyNC2Yvfuh1byVzVNFlqdfGWIC6qnJVDnzGI8Nuuu7LQ7B7LdDeP.CG3XzGV4XxF64yC75lhMQFFlVcyPpkiQp6a0g6wufdFhcOMCR1LxCZlKMOSxIuIYOeSxLmIsRrI8YV8cC4STYbP64WlPMyhbJXRwbMVh8ysdvCHGJ3pFU2SJTLgpwX5qXsCgAGBiCGRcY0ZYaWmrss85+1pUA4e1SIcXX7gGyMfFRUbonQUA3yh.+GC3qYW8MUqTsBH+9ZwXWLuFUq.t8HE4TZHYhHHQdxumjZCTOutTAKn1ZYrWqNooM9EXEUxH2Hhops1YbOkOHgiy1kw1mwG4q.9arExt5aKtOl.9QEWLp3lnKRMaSDROCHB1dplKtHZo6ImB5gUa3TgKhJ0Fsd0JfF.UjGH.+.ORQEZDfSAmeDn2JHbPATP4yiZLhoNR5RCdjbpvKpl1t0RrWe9egARsUJg99TO4YcoJ+bHnaHCh1Ph0zyLSHDb6gJk40i4BVwn.VMZ8X8pkMwXwMbjdZZqaTCOfx9gxIw5BhQFq0elpqSP8nONG03Ltx+gAS7o0ress9SchcilasN3CqSdAN5kytbCFEuR.dFqlZkos8N.+mVa1qqUwnFCgDLK7t5Hx3j3v24Z0V+AWqsl+Z8hsH+FxF0II+nChzg.KVsCDifXBzgFmVsKi9piXmBQ21qS9BRqMgIU+Jb5un4KIeIYCPrl.t05kIaHxCfwyro5cauofuZ8dr4btI2bGQDSGOfExcImxYmgaR9PRtUGNZwGvBhZKCwKoZScgLtyE5Wm76..v1ANgldDM2xEGI9NQxr.6MRPx4Bks9pKBPb1rrs7LVg2.BWLTRTrWqVH6I0ytfgewg.32aAlep8CKQaHMRs05Q+NOepfCIN2NlYQPuj34+.hoHjpwzzrFm.1e577jSgDdmH6qBgTt+vbg.LBeUNzFavuE+FnTVolzZe4ghgqs.ZnZ7OSTzatrmZAiWZ29is3kV1srQXbAb9+X6KSbBEx4cCmVvYtoE5camVHKE6B3t6cKmdv4lN8fykSObamivo73pYw4qLWwhkvXNp6cj3n2schia+HpONRf7d4nubhj.TsUuNGrmqWX6q7oONuD36z.dajyUJyF3yi.YvGHkyw4fdtpUdaYUxDxFFxh7KoZrdwbvBvubkYJjZgxxd1SSlv9TEVSRBxGWVgVIGO36fcaMssTPZDB0RrGMHX.TPeV4PIUCURETgLcQX5hUz6rYTohFFqzZNNoabbmmtFPIJoqBQJdhTwNFWt2nkjLKqgCKkGV7TnLH.VkxXGu9yYh0huMpNffASYWHHTrdwN.Xc0c.HeSIbiqkKmfRAVq9wSXIiubOBLRJ.D9smdHBcXaCRnAxMgEp3nIXtO6TtKKtIBUr1mE8JkbhV1wSjBTClqpzbuaZKFvJxM3dXGix7bFuF1Ol2GVuyS+Ecw3fVWUkzSn3xuQJ+5z1Dc4NYbOqNRuoATUwFqfm9SX.XcgtXfMnPDwUmmukTy1skUVrtszVF3gZ8JP0Ezb+Lqtbkqe416RkXuf2411dS5c0csNX3P3.alwthU6+zbaT0Mto74wlxOw54zSY5lNpMjUsd9iYhahFM9WW3FMdLjn9T1IvafhlHiXN40be1X9IvYfnBTmYFMKcFEntOSMUTT0wjJHEhEvsbiyI2c1MkXy7DgCfETFLtfl5vec1v+8Wef.6rTeFry8NNxE.FLXMOp1cJ7rjmimVcxOwLxMyS9angdfSysvoskW3Pl7Y1JdnNm7kzzyUus5C6GzLC+vSjcyz13Jo1Xe93IArCDvimfaEz13u.tFXHcZfJkZwlF2QJjS7kBta9ftdL3oaiFwJDXU5F5gJEbQcFk6uaOV.iFkcN8u8u18H3UFzP.mXWSrv48tE5k5u9UVwlKASjP9eiKfV9+Ku.pfK+NW7m7RG9+3TS4mkPffTblyUQXJ7.ZA.74IO2Igved2Rtr5P3DUnpqDds8rv+x2Tg1qrvwH3V5SmXZLsD.4eJYv5PhOcL36YAOk3i.yM9Oe1nNT3JErrhmLcbe3EatLvTEPwGXoSlKgE4DO1FGG+9Kgmdv+A9jvzAGalvzIk4hCIvqo9zwC94VvK7ZRzI+I+3m8+Cgi7CwZLl5FJ+V23p6wbr2QSA12B8+CEpX0AGSbLzU7mGXGCOD8accKppKMwlW2Itw0chadcm3VW2It80ch6bcmXq28Dw5Dd3Tkbb74Dn3otGnaWhoYbcS5iLF+WfEl5Yb
      

      Script:

      // Init.
      Content.makeFrontInterface(800, 600);
      
      // VU Meter declaration.
      namespace VUMeter
      {
      	
      	// Declare VU Meter.
      	const var pnlVUMeter = Content.addPanel("pnlVUMeter", 20, 20);
      	pnlVUMeter.set("width", 116);
      	pnlVUMeter.set("height", 35);
      	
      }
      
      // VU Meter painting.
      namespace VUPaint
      {
      	
      	// Draw VU.
      	VUMeter.pnlVUMeter.setPaintRoutine(function(g)
      	{
      		
      		// Declare assistant variables.
      		var a = this.getLocalBounds(5);
      		var CSize = 5;
      		var ShadowPath = Content.createPath();
      		ShadowPath.addRoundedRectangle(a, CSize);
      		
      		// Draw shadows.
      		g.drawDropShadowFromPath(ShadowPath, a, Colours.withAlpha(0x000000, 0.25), 2, [0, 0]);
      		
      		// Draw bg.
      		g.setColour(Colours.withAlpha(0xCECECE, 0.20));
      		g.fillRoundedRectangle(a, CSize);
      		
      		// Draw L meter.
      		g.setColour(Colours.withAlpha(0xFFFFFF, 0.50));
      		g.fillRoundedRectangle([5 + 3, 5 + 3, Math.range(Engine.getMasterPeakLevel(0) * 84, 5, this.getLocalBounds(5)[2] - 3 * 2), 8], CSize / 2);
      		
      		// Draw R meter.
      		g.setColour(Colours.withAlpha(0xFFFFFF, 0.50));
      		g.fillRoundedRectangle([5 + 3, 5 + 3 + 8 + 3, Math.range(Engine.getMasterPeakLevel(1) * 84, 5, this.getLocalBounds(5)[2] - 3 * 2), 8], CSize / 2);
      		
      		// Draw L numberic view.
      		if (Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(0)) < 0.01)
      		{
      		
      			// Draw L bg.
      			g.setColour(Colours.withAlpha(0x000000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3, 14, 8], CSize / 2);
      			
      			// Draw L db info text.
      			g.setColour(Colours.withAlpha(0xFFFFFF, Math.range(Engine.getMasterPeakLevel(0), 0.50, 0.80)));
      			g.setFont("Rajdhani", 6);
      			if (Engine.getMasterPeakLevel(0) > 0.0)
      			{
      				g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(0)), 1), [5 + 89, 5 + 3, 14, 8]);
      			}
      			else
      			{
      				g.drawText("-Inf", [5 + 89, 5 + 3, 14, 8]);
      			}
      			
      		}
      		else
      		{
      			
      			// Draw L bg.
      			g.setColour(Colours.withAlpha(0xFF0000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3, 14, 8], CSize / 2);
      			
      			// Draw L db info text.
      			g.setColour(Colours.withAlpha(0xFF8080, 1));
      			g.setFont("Rajdhani", 6);
      			g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(0)), 1), [5 + 89, 5 + 3, 14, 8]);
      			
      		}
      		
      		// Draw R numberic view.
      		if (Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(1)) < 0.01)
      		{
      		
      			// Draw R bg.
      			g.setColour(Colours.withAlpha(0x000000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3 + 8 + 3, 14, 8], CSize / 2);
      			
      			// Draw R db info text.
      			g.setColour(Colours.withAlpha(0xFFFFFF, Math.range(Engine.getMasterPeakLevel(1), 0.50, 0.80)));
      			g.setFont("Rajdhani", 6);
      			if (Engine.getMasterPeakLevel(1) > 0.0)
      			{
      				
      				g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(1)), 1), [5 + 89, 5 + 3 + 8 + 3, 14, 8]);
      			}
      			else
      			{
      				
      				g.drawText("-Inf", [5 + 89, 5 + 3 + 8 + 3, 14, 8]);
      			}
      			
      		}
      		else
      		{
      			
      			// Draw R bg.
      			g.setColour(Colours.withAlpha(0xFF0000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3 + 8 + 3, 14, 8], CSize / 2);
      			
      			// Draw R db info text.
      			g.setColour(Colours.withAlpha(0xFF8080, 1));
      			g.setFont("Rajdhani", 6);
      			g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(1)), 1), [5 + 89, 5 + 3 + 8 + 3, 14, 8]);
      			
      		}
      		
      		// Draw line.
      		g.setColour(Colours.withAlpha(0x000000, 0.30));
      		g.fillRoundedRectangle([5 + 86, this.getLocalBounds(5)[1] + 1.5, 1, this.getLocalBounds(5)[3] - 1.5 * 2], CSize / 12);
      
      	});
      	
      }
      
      // VU Meter refresh.
      namespace VUMeterRefreshTimer
      {
      	
      	// Declare timer.
      	const var VURefreshData = Engine.createTimerObject();
      
      	VURefreshData.setTimerCallback(function()
      	{
      		VUMeter.pnlVUMeter.repaint();
      	});
      	VURefreshData.startTimer(11);
      	
      }
      
      
      // Callbacks.
      function onNoteOn()
      {
      	
      }
       function onNoteOff()
      {
      	
      }
       function onController()
      {
      	
      }
       function onTimer()
      {
      	
      }
       function onControl(number, value)
      {
      	
      }
      
      LindonL d.healeyD 2 Replies Last reply Reply Quote 1
      • LindonL
        Lindon @It_Used
        last edited by

        @It_Used if you look there's a couple of examples of this already in the forum...

        HISE Development for hire.
        www.channelrobot.com

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

          @It_Used Is there any advantage to this over using the built in floating tile?

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

          It_UsedI 1 Reply Last reply Reply Quote 1
          • It_UsedI
            It_Used @Lindon
            last edited by

            @Lindon said in VU Meter.:

            @It_Used if you look there's a couple of examples of this already in the forum...

            I've seen it, but there aren't many of them, so I want to expand the choice for ordinary people. In case someone needs it.

            1 Reply Last reply Reply Quote 0
            • It_UsedI
              It_Used @d.healey
              last edited by

              @d-healey said in VU Meter.:

              @It_Used Is there any advantage to this over using the built in floating tile?

              That's a good question, and I have the same question... Probably not, and perhaps to begin with, I don't quite understand what they are for, I do not exclude that my method of determining the volume is incorrect.

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

                @It_Used Check out my Bootcamp course, I cover the floating tile meter in it. You can still apply your design to it using laf.

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

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

                35

                Online

                2.0k

                Users

                12.6k

                Topics

                109.5k

                Posts