Forum
    • Categories
    • Register
    • Login

    Limit number of decimals.

    Scheduled Pinned Locked Moved General Questions
    16 Posts 4 Posters 924 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.
    • A
      aaronventure
      last edited by

      inline function trim(value, decim)
      {
      	return Math.round(value * Math.pow(10.0, decim)) / Math.pow(10.0, decim);
      }
      
      CyberGenC 1 Reply Last reply Reply Quote 0
      • David HealeyD
        David Healey @CyberGen
        last edited by David Healey

        @RastaChess said in Limit number of decimals.:

        outputs like 15 decimals.

        How did you manage that?

        Standard frequency knob should be:
        Peek 2023-10-27 15-16.gif

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        A CyberGenC 2 Replies Last reply Reply Quote 0
        • A
          aaronventure @David Healey
          last edited by

          @d-healey said in Limit number of decimals.:

          How did you manage that?

          Float error I think. Seen it, too.

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @aaronventure
            last edited by

            @aaronventure Must be some custom knob? Setting a knob to frequency mode shouldn't have such an issue.

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - Public HISE tutorials
            My Patreon - HISE tutorials

            A 1 Reply Last reply Reply Quote 0
            • A
              aaronventure @David Healey
              last edited by

              @d-healey Not happening in frequency mode, true.

              1 Reply Last reply Reply Quote 0
              • CyberGenC
                CyberGen @David Healey
                last edited by CyberGen

                @d-healey 😁 not quit sure, but It has something to do with custom popup value, the knob is being used to control an LFO freq, but when is in tempo sync, the popup value is scripted to show the note subdivision value. When not in sync mode it shows the freq. But then it throws those 15 dec every once in a while. Even in freq mode.

                David HealeyD 1 Reply Last reply Reply Quote 0
                • David HealeyD
                  David Healey @CyberGen
                  last edited by

                  @RastaChess Post a simple snippet that demonstrates the situation.

                  Free HISE Bootcamp Full Course for beginners.
                  YouTube Channel - Public HISE tutorials
                  My Patreon - HISE tutorials

                  CyberGenC 1 Reply Last reply Reply Quote 0
                  • CyberGenC
                    CyberGen @David Healey
                    last edited by

                    @d-healey
                    here it is:

                    HiseSnippet 1610.3oc2XEtSiaDD1FhomSaOUTueUoJ4F0eDTofMDBfNc5BDHmhJPhtji1SUpHi8FXEN65Zuldom3YnOD2KReD5iv8Hz9DzNqsi8lKqykCwcps4GH1c9lweyryrdF2Mf5fBCoAJp58G4iTT+DsdiHrKadoMlnz9.E06qcrcHCEXjr09i7sCCQtJppK9D9Fp5kTh+8mOdeaOahCJeKEkSoXGzQ3gXV9tca7cXOuV1tn93gBnq0nsCkzj5Qi.9rnlohusyU1WfNwlCaAME0kNzEynA8X1LTnhZo8oti5cI8WHI3OEGhO2CwWXozCLTx1sndtbFy+eklWh8b6N1uCUTT05lGEVLIJ7.siwt3r8yiFeVr.ibMDiGpKLI8VbB5YUD8jPIUAJUJgRKq0yI.6yxkv4yGq0l.GNCrgvtHURvprvqz0ZRADD1ZCsuB0J.VjoQ05llqZ.+YkGVtLD5CYFWaGXbTqNVFOxHNOXsKPriotQd1feUsBWTE.cN3i6bvY8d9IMOa+9m.JM9gAp0jNzmRfEUqHBZR0ACd1S2q+gEp5X.b0R9s95F5fAM3FznYmS5+zNGUVurNl3gIHiAQDGFlRLnDwGK25ATupNiM8pvy2KBsRY8WVtrtNdfQ0wan+Rvb55bmcsPDaOFK.edDCUs1pFV.ORjESKt7pUFhIUV0vTtHWWOTWZHlSJ.0VxPAEX98v+JpRQO.6WvEIWF0EkZWP3Mo9xWk6LE5KlyvWVaqh4Qs4ySsLeKtp4Zlyxi.Y5IdzM.n4Iyhqd5AcSaOuygqOpJMMfGqVe83zn3rurznoShFSsYl.wS+fft3ShSzS4.pthwidD3Lw3xyy3aZtxzmKliOWl.okbjaLMxMjibyoQtobjaMMxZxQVeZjaIG4NSirtbj6NMxskiLsZXBn6T.TIwocK.ZMIA+BNmrjDprJ3jxZaIXK3rxRRPvpfSqMhSVt4sl+UfKjU3kiN9djadHTUVTQW9cxxK3diRFNA42ZmUs0sS2m003z8N5YGZbP6dcOZumWV7FfXhzk5G42JsNr53Bxw2Q+xaaAW.hEEPLpXstUEIUY4h2nhjRKAw8qHofJWdsJRphDDKQ8sDjuSEIELBhkn91h9V8JRpMDkKw.6J.XSItuk4D.jXAKw.XcIg.qMl..XBdVld5dGaCMbDPiHtoGywRmmb6ji5TyjoLWW96DKW9FHGT3N8SnLTGR03znx2T13MEMXfTYo4ydn.oh4cyFLKEqRhFdNJH6EGo.gV7lruwklu9FcRJNE.RIsIXVGeT557FesjzkoRZ0Mzu4BoLDfxh6179ocateDiQIJX23AADNBTh8AwV8UJxF87vtnfXaTVabc9D5+5W4+WOV4YsOvlYy69MkX.Y8QALLOlnd.5ZXThjdg00N.EdEi5Gy7z6kfF4mWt+hbdSZLJewAMXnW.FZIMNTtGkYa84wmxs6u6IZ2eJytCBP+rBzEEHaopowsIabJWqutQHbzleYnh5Gos24zqQfFBvd8iUldZAXNkwcsKN7BehsTA7Gk3DC7oBH.EFINQ2aNQSohyLMkNvkz7t4jtKq0EybtTNeWPBe4Ixum4a57gep1gCFfbX4jsjVqeXlCCVZ9JpmepbuDp7EZOwidtsWd.DJd.VgRFP7KSEajI2HCf0Lll+Ol2o48m6o4UW7tZ73RuulX+CZ98mO0QS3cZE46vm.Q76MrbBk03WqEyyk3+m0amZ6i8od1Ab4sfq4hPDmQhWvyyQZmmh032Z781WiFPCFldqdlkNBcADND2oOBtIt2HhiX5XugTJ6RL4hIy7dPiinT+CI1PbvUzHcuzNj+xcnEyILCX19zjuxUSOpyUhBaeAgFfRZXPb+lQgL5vwNP7WmpGLYa7avT+Qs50VC9M3a3+c2lve1rycyZk6tOxzBycdJb9ajcjySW+W9aNRXbVR3+AX7LeW2h+O5ccuCT4ozHFTbCSEDfgFlzNIZXO3kINHfIDBxCdPZpKvqESVaxWGWPiHtwK9a3WpPK9Z0TgViE9A4YLz1IfdlSR2w7Bu6EuC32j3Orst1w70FVi6IVSybMSdag3ybb3g6uEhOx0YiagNadKzo1sPmstE5T+Vny12Bc1Yl5v6XXuH398jRQXitGlbytZ1qUTWT4e.D0OG6M
                    
                    David HealeyD 1 Reply Last reply Reply Quote 0
                    • CyberGenC
                      CyberGen @aaronventure
                      last edited by

                      @aaronventure said in Limit number of decimals.:

                      inline function trim(value, decim)
                      {
                      return Math.round(value * Math.pow(10.0, decim)) / Math.pow(10.0, decim);
                      }

                      this actually solved it..... Thank you so much!.

                      1 Reply Last reply Reply Quote 1
                      • David HealeyD
                        David Healey @CyberGen
                        last edited by David Healey

                        @RastaChess

                        Aha I see, yeah it's only in the custom popup. The doubleToString method that dabdab mentioned is what you want there.

                        Also you can eliminate that ugly if statement and use return Engine.getTempoName(value); instead.

                        However you don't need any of that :) You just need to set the knob mode correctly. You are passing numbers, but it should be a string, TempoSync, Frequency, etc. Then it will just work.

                        Also you should avoid using magic numbers like this LFO1.setAttribute(4, 1);. Use the built in constants instead. It will make it easier to read and understand your code.

                        I've cleaned up the code a bit and removed the unneeded popup function

                        HiseSnippet 1299.3oc0Xs0aiSDEdbR7xlrKqnh9.BIjrxCnTQU1X11xkJzllj1UQzbQMgBHjnZh8jjQ0dFi83xFP6uA9KwOA9ov67.bFaG6IsoYyF0VIrTrzbtMey4LmKN884Vjf.tORq3vYdDj1S0GLiIl1bJlxPsagzdldGbff3aDSpwLObP.wFook+URBZEKfhd96W1.6fYVjLRHz4bpE4TpKUjQse8uk53bB1lLj5pH8d0aawYM4N7P.O40qg7vVWhmP5hkhkSGo8nisoBt+.AVPBPZEZvsmMXJ+WYwxeNMfNxgHWXhF.FJl7IbGaIhkTQMmRcr6O+bGfPZ58y7B4i8Baq2gZSSom4M9fHFFYZn5OzxsH7xu.7LUgWME3sDHoo.oBwPZK8AV9TOQFGIddhdaFDbFiA2tJThkEk6exo2jCRvDUcwWRNwGVjpQkCpUaWC30NGVpD35CDFWg8MN8jdlFeiQz8fpSHhNb6PGLbtpTVxpLHclvc505hA+X2lWzXXWPo4aFnVStqGmAKpTVUnEUGL3EmczviuUUmKfTsRO+4FEAaYHskQydcGdVuSKUrDk4PYDiwgLKAkyL3L0MTZWetSEq4FcWXmcBI6T52KUTdfpFPDGID9zQgBRkHJCIfrfCvZtrGFIZDRjhWorK2lTNgqwKMJmpQYiu1n7I9jeIjvrlUdIZRsscH84ATIXUrw9fllxXQwREoiMpjfxhKn+YX1DREHrYZB+pBhCRSbBHKWtp6uqwdfz0pVyDr7ajFechQRSj33ZhcbFAIhUVpacmCUb6c4BROVkHOao2Tx35rFOdo7RLkCweorkUI7WkhUXgtiH9pwUofPpyh4i52d9nZ4BqX+ihfbVaFUzyivtshHnDmJj6lKAUfnhnL2mkj41HTH3LD0NpnphqDEga0JonayFCbn1D+HaTRed7955+Q0QeW6VXAVVIIAX.X8H9BpzOn0hbETVNttRQ8VjfKEbuHjmbc.7UqK1ec19xpOKaQq5BxqAC8HconRGTpse55blxr6e5nZ2eN0tigjLjKVA.eZ8EStx3rc8.HbdtzO0m6EBG12S+nQ7qHHYhrrNZZBLxadbsssbajEDfNQ9PSHntoj1SzSyuQPqQuAzeawn2MqdC8MlWEUsYhrCZBCIbUqfKqRyfiwLUKem0gYcg3V58oBqoKGi4VBFkI.2CXLou76qe73wDKQF.KnexOb+zDVc6eb71+w5uxgOB6j4nfjK.Ij3lweRBaiT9FoBXthIm9q0cxIu0dxIs7qZRIyMbRoB2WSJUX8BRqFdq6c5O7FgofGvLuElsaqXXpKKxDgsjxMuU3zf5wcv9R9Y0hTZ.HuizN6JV8+n92iuhLl66lT0O0RmRl.t.UJYUBUHNvkyESorIKdya65mx4dGyvvY2VU99SwAxF9vbDp2pklcHO9KJZ5vstTkY6ILtOIdHBU5MCCDb24GfnuDX.T1MpCm1OoevdUgmwel78W0Dd8hd2MqeWJkYt5fdt09tID+MRC4xqnu62MefyljHN8R3+CP7J6okes5ocmi2Mu+1cCTNiGJfj6NX3yffApz6F5N.ZlXQ.jvXv2W.zzxIyEiWWStNJglvriV7uvSBSS4ZsDllyY9frGtXKe9EVwSOKS7dbDE3byh9SDJp2Qt1v75yLiPvnizKrrVzT2PwOeSU7Eaph6soJt+lp3Aaphewlp3W91UTNMwQgPef3TVDpS+ii6.nk19QKO5+.lUZQ5
                        

                        Free HISE Bootcamp Full Course for beginners.
                        YouTube Channel - Public HISE tutorials
                        My Patreon - HISE tutorials

                        CyberGenC 2 Replies Last reply Reply Quote 0
                        • CyberGenC
                          CyberGen @David Healey
                          last edited by CyberGen

                          @d-healey wow! 😧

                          want to do that for all my code? 😁

                          just kidding...

                          As you can see, I have tons to learn.

                          thank you so much!

                          I'll put this stuff in.

                          1 Reply Last reply Reply Quote 1
                          • CyberGenC
                            CyberGen @David Healey
                            last edited by

                            @d-healey on thing, I don't want the dotted values in the tempo sync mode. That is the main reason I had all those if statements in the popup function. Do you know of a way to not get those without all the "ugly" if statements?

                            David HealeyD 1 Reply Last reply Reply Quote 0
                            • David HealeyD
                              David Healey @CyberGen
                              last edited by

                              @RastaChess That makes things more complicated, but it doesn't have to be ugly.

                              You can use an array of values that you do want, and the return Engine.getTempoName(value); function to display them.

                              Free HISE Bootcamp Full Course for beginners.
                              YouTube Channel - Public HISE tutorials
                              My Patreon - HISE tutorials

                              CyberGenC 1 Reply Last reply Reply Quote 0
                              • CyberGenC
                                CyberGen @David Healey
                                last edited by

                                @d-healey Good idea. I'll give it shot.
                                thank you.

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

                                15

                                Online

                                2.1k

                                Users

                                13.0k

                                Topics

                                113.2k

                                Posts