HISE Logo Forum
    • Categories
    • Register
    • Login

    Problem with looppoints

    Scheduled Pinned Locked Moved General Questions
    25 Posts 2 Posters 927 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 @tiesvdam
      last edited by

      @tiesvdam What you're showing in the video is what you have drawn, correct? At the moment I'd say the problem is in your code, if you can put a minimal example together I can test further.

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

      T 1 Reply Last reply Reply Quote 0
      • T
        tiesvdam @d.healey
        last edited by

        @d-healey Sorry what do you mean by a minimal example? i think its the code to

        T d.healeyD 2 Replies Last reply Reply Quote 0
        • T
          tiesvdam @tiesvdam
          last edited by

          @tiesvdam this is the code i made

          //AudioWave LAF
          const var SampleStart = Sampler1.SampleStart;
          const var SampleEnd = Sampler1.SampleEnd;
          const var laf = Engine.createGlobalScriptLookAndFeel();
          laf.registerFunction("drawThumbnailRange", function(g, obj) {
              g.fillAll(0);
              
              // Start point (using existing position property)
              var startX = obj.position * obj.area[2];
              g.setColour(0xFFFF5400);
              g.drawLine(startX, startX, 0, obj.area[3], 10.0);
              g.setColour(0xFFFFFFFF);
              g.drawLine(startX, startX, 0, obj.area[3], 1.5);
              g.setColour(0xffFFFFFF);
              g.setFont("regular", 12.0);
              g.drawAlignedText("Start Pt", [startX + 5, 5, 50, 20], "left");
              
              // End point (using new endPosition property)
              var endX = obj.endPosition * obj.area[2];
              g.setColour(0xFFFF5400);
              g.drawLine(endX, endX, 0, obj.area[3], 10.0);
              g.setColour(0xFFFFFFFF);
              g.drawLine(endX, endX, 0, obj.area[3], 1.5);
              g.setColour(0xffFFFFFF);
              g.setFont("regular", 12.0);
              g.drawAlignedText("End Pt", [endX - 55, 5, 50, 20], "right");
          });
          
          
          
          // Variables to store loop points
          const var loopPoints = {
              start: 0.0,
              end: 1.0,
              enabled: false,
              settingStart: true, // Flag to toggle between setting start and end points
              endPoint: 1.0 // Adding the EndPoint property to the object
          };
          
          
          
          
          laf.registerFunction("drawThumbnailRange", function(g, obj) {
              g.fillAll(0);
              
              // Draw playhead position
              var x = obj.position * obj.area[2];
              
              g.setColour(0xFFFF5400);
              g.drawLine(x, x, 0, obj.area[3], 10.0);
              
              g.setColour(0xFFFFFFFF);
              g.drawLine(x, x, 0, obj.area[3], 1.5);
              
              // Draw start point marker
                  var startPointX = loopPoints.start * obj.area[2];
                  g.setColour(0xFFFF5400);
                  g.drawLine(startPointX, startPointX, 0, obj.area[3], 10.0);
                  g.setColour(0xFFFFFFFF);
                  g.drawLine(startPointX, startPointX, 0, obj.area[3], 1.5);
                  g.setFont("regular", 12);
                  g.setColour(Colours.white);
                  g.drawAlignedText("Start", [startPointX - 0, 5, 40, 20], "centred");  // Tekst voor startpunt
              
              // Draw end point marker
              var endPointX = loopPoints.endPoint * obj.area[2];
              g.setColour(0xFFFF5400);
              g.drawLine(endPointX, endPointX, 0, obj.area[3], 10.0);
              g.setColour(0xFFFFFFFF);
              g.drawLine(endPointX, endPointX, 0, obj.area[3], 1.5);
              g.setFont("regular", 12);
              g.setColour(Colours.white);
              g.drawAlignedText("End", [endPointX - 40, 5, 40, 20], "centred");
          
          
              // Draw loop start and end markers if loop is enabled
              if (loopPoints.enabled) {
                  var loopStartX = loopPoints.start * obj.area[2];
                  var loopEndX = loopPoints.end * obj.area[2];
                  
                  // Draw loop region background
                  g.setColour(Colours.withAlpha(0xFFFF5400, 0.15));
                  g.fillRect([loopStartX, 0, loopEndX - loopStartX, obj.area[3]]);
                  
                  // Draw loop start marker
                  g.setColour(0xFF8d478d);
                  g.drawLine(loopStartX, loopStartX, 0, obj.area[3], 2.0);
                  
                  // Draw loop end marker
                  g.setColour(0xFF8d478d);
                  g.drawLine(loopEndX, loopEndX, 0, obj.area[3], 2.0);
                  
                  // Draw loop region border
                  g.setColour(Colours.withAlpha(0xFFFF5400, 0.5));
                  g.drawRect([loopStartX, 0, loopEndX - loopStartX, obj.area[3]], 1);
                  
          
              }
          });
          
          laf.registerFunction("drawThumbnailPath", function(g, obj) {
              g.fillAll(obj.bgColour);
              
              var a = obj.area;
              g.setGradientFill([0xFFFF5400, a[0], a[1], 0xFF8d478d, a[2], a[3]]);
              g.drawPath(obj.path, obj.area,1.5);
              g.fillPath(obj.path, obj.area);
          });
          
          
          
          
          1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @tiesvdam
            last edited by

            @tiesvdam said in Problem with looppoints:

            @d-healey Sorry what do you mean by a minimal example?

            a HISE snippet that contains only what's needed to demonstrate the issue

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

            T 1 Reply Last reply Reply Quote 0
            • T
              tiesvdam @d.healey
              last edited by

              @d-healey I think you need all i send in the snippet, because I think the problem is with the start/endmarker that I draw here

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

                @tiesvdam Make a new project, add in whatever is needed to demonstrate the issue - and no more than that. Then either send me the project folder (if I need some external files you are using) or post a snippet here - Export >> Export as HISE Snippet.

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

                T 1 Reply Last reply Reply Quote 0
                • T
                  tiesvdam @d.healey
                  last edited by

                  @d-healey Ahh i understand. Than you need a project folder of mine. I use some png so the file is 25mb. Can I send it to you mail?

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

                    @tiesvdam are the images required to demonstrate the issue?

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

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      tiesvdam @d.healey
                      last edited by

                      @d-healey Trokeys kopie.zip

                      I fixed it, sorry. struggeling with files and that kind of things!

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

                        @tiesvdam Please make a separate minimal project that contains only what is needed to demonstrate the problem.

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

                        T 1 Reply Last reply Reply Quote 0
                        • T
                          tiesvdam @d.healey
                          last edited by

                          @d-healey This is what you need, it connected to a sampler. More minimal is not possible because it will not work

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            tiesvdam @tiesvdam
                            last edited by

                            @tiesvdam I deleted everything that is not required

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

                              @tiesvdam It contains quite a few things that aren't required, such as adsr, eq, fonts, preset browser, etc.

                              Make a new project, that contains just the absolute minimum to demonstrate the issue, it's much easier to find the cause of a problem, and the solution, when there is not extra stuff in the way.

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

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                tiesvdam @d.healey
                                last edited by

                                @d-healey Trokeys kopie 2.zip

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

                                  @tiesvdam

                                  • You have two drawThumbnailRange functions.
                                  • You should probably use local laf instead of global for this.

                                  The laf function will trigger for all set ranges, so that includes the start/end position, and the loop ranges (and possibly sample start and release trigger, haven't tested). The solution is to ignore any ranges with an index greater than 0.

                                  Here is a simplified snippet.

                                  HiseSnippet 2718.3oc6Z07aaibEmRxLarZ17w1OPOrnfHnKfyVuxjTePIDzMxV1JVXksEjbxFff.2wjijlZRNLjTNVcwh9EJP+WXQuzS8VAVfdoGC5sBza8efdom5k8RO29F9g3PYkDaUEUi1UvvhyWu4898l489MCUGWpN1yi5JjI+gicvBYtgXuw19CaLDQrEZsMTu3gtzSvi8TE1ZrCxyCaHjIStGxZOypqHD74qdvVHSjsNNoJAgGSI531DKheRscp+IDSylHC7gDKtdWpdKcpcCpIcDnK4DkEbP5mfFf2Gw5VVQgcQdCEx7ghUL5ipXnUVVAWrpglphV4ZkzpHK22nph1wZGWDYfpnIKj4Z6XP7ot87Q9XOgLqrE0XbugzWXGNAOl3QN1DyJnHzCl4vpaRMMXlHqVgFCIlFchAIOAgLhcRfrbgP12RbOhAYR8IP2sCZPJYD7.XlroUuboTOEd0SlS8lgJkgSkVITktiXOcWhieRKL84aH1x1G61GA9IdUIruBY+6hhMnPOr8KXgNA2zEJLYDqoHWUdcI.nu28ymGbVd9RmhbkLQ8k9gRwiS2EClSapNxrMkdxl1FMwXy0ROjMGYPneJ5TbepqkB2nGf8aPsbn1Pg0ta5tcWPFoqofG1+byDnNrIC9pfKd.wCz9lir08IT60tqgK5EGNbj0w1HhYWj8.7cWWpebyCVWhd7O9dReVdI3Sv+H8kVCpqfKqusrMvmI8wRx2KnsUcw9ibsgIiUZPg9vB6MMMWigOSDvFaHsMLoRNlnwCwHCIGpGgMaAsx.iy.6mMEwMH8gAEQ.P9T0mwIpAL6MbGxZxm0D9Ttjb7jMn.y1ZSrwqc15RvexqmHlhOacIE4BoTryKM1mKrzJTdVVomOx0GLQhsujEx8Dr6DyLnoNrVdRjAGHL4mc+KkwwIl0kRU30XvWTa8RH7I1efraRYqWg0aiLQtvRJE0YLyge4U3ECI93TS9lljA1XiCwmARoGadAY7TdD6iXZP40kJAeoJCJvc0gsHtXCXWQ.7eH9D1lKJMBocFY6ed+C11X1dGngy6aTuj9lIBYcItGW.9kKnfe64S1w1f4QRPoOJvS7JbH4+bVDn3vJRT68o93CrW6d4+r7ql+yyKMcS86Oy1XQEcollX2Y1LKAp6qafqYCQ5vtqCdXyQ3IcDRRjNyi3qNyCehQ8vfzbcjZ2xl3efC19UktTHJxNjkJWjVAO4Gji51Q4nfH9GS2hdl.ARFcSwFVG2CY4Xh2C4HDn47zLDlVJe6HojJ0PfntsX5zESKrHs6BnR5udU5Qs1F4iXIhirV.Abvt9DF3lYa7o.MnvzxqJtM16DepS.bDknCnXcwAjylLyN+h5iSTiuecmXXukAahhHsI7Bhg+vI8qNs9PLYvPNFY6WGV5aAZ52Qr6PpA1gfro46Q66G7jfEBlSwLYgtdJOkDANC3VWZeQhcH8S4si1osi7hgltqxTFxe7mOsg7kOOvPB2QqxHxVRsVoZpkTqVUvG1FySt73AwkVUTQtrZkZxBIiVHy0E0TKpoVlqxhLsQohVohJUpJ3A6BZRLinmxDI0A87QQOaRQFeJweXabe+FlD8Sh2ej.YuyEeEWBVU+WxiUqWOx2jCJD4De+Y5Dy+Xh8Xyo7emm0HvWkZ.gK8SShkQ0OpAH9RJliL1g1.ukw7aHVXLaunp3cD6P70GNacL6LzQXu5aCcL57.uq3N86i08STvUDa9j2Nj+4m9q+JNA2MBX0CkXaiV.mgy4BeFtL49+iif806k9es8Rue3z+dh8.RcHKh8fnDQQ2IxjzRK08ScbwrTK8H+Dtt8x5aMBvH2z09k0ClpMsnirSMWQZdWrCbRcvMyMlqWua2G5RG4L8n9pGDrn3PWj9I.Tv2vA1X.q84swFtTOu9f4DHKO9l5Lxc.CqRpoK9TrqW551ejE3usswlL1oYx.U8HOLy+Rz2C46RNiu2Ayh7gn.ebVwvxJSUVcpxEmpbooJWdpxUlprVR4LhoW+csKFcZHydGDXhb8bKxfjr9A07FhDdsuNR3bbeYY4zwUi0wdDFvui8ovNLnFlN9d.a89nQl9w0ld29dTapyPpMQO85YX84fAXWdcelFzl99HFyP9wZhQdXdV8ry+hbSuM8RgEJW56Nbl9quqXn5JwBQI8e8LX2JTUeGwM2c6dciRbE7rzLcVYWLNqFibOM1Q7y9S+y+1C1FqiFyW6qvyFVSaHVmIe06BaumT9W+WqGHtIx+2+ap2ajmeRREoe0+368xzKRpWL6en9N5z2dqPDufqPdW9UHWAI1byX8KzKb0SAugXf6+pJ9cKwnEiWYAvaJFs23pJD9Z4Vm6sK25TQ5uSnRJJ1t4AAZ10D61PU9MS0eKhC0D4xZuoK94iv15ws+x+xMJVmQhskcRDxOnd7U9DcAXQR510aiG.fCu63PrkCEN5ZpHz8rnT+g.mSNpw+n9+th0aSoN6XyHgYjhm5Pv+eP+9d3XJo+1u3K9yOfI1Co6gXuNnFlzzAmaMvl5hCuj1T7Xg06TqI2iEiqWOerSvk8k4ohUJU.9z+Gv9esFv+JdvhorvhK3c1K3JyuIakfzDWNKA+xjQVlYwHiQWM4JviXjEvgMoVk2rVBmbHhqNmGG3H35m9PGIBc+fqM+7qBSe5LR8H1gON8EBe65KL2mvkx6MYC4R16cE5T6u9rCgmsRJ3ErckL+evIKkXwPWlpWW5HeH.a7AqEgk+8nib0w7mAmc8+QkkYkC1UfsMBJ7ufOQMpDefcViJwMJnGKJvdhdNLLZNbbL7LYMmldr2n98YpDD3UvKv4YwNXrXHcyjK59Hgot2BQQkBvIrI5chdo5L.R79b2LAxxBE2udPD9P9y4DYu3fvoBxR1kxtXiUDqHKzl9I3wQOuKI441zGyzYFztKI3QPlpZwJTzo3m7hB1UbCHdjq2FCc1H5UAswda1Z+MNr6Aa0ZiNsezCgBc28fs2YiSU2HvDOph7QFisQVDckibcUJ7BzoBaOxwjnCt9fe+FnvytZvdwEEKWpTEUA1AdLI9CiyEFbkCQ00FaOf8tTXctRwxpBgBnaf3VUrTUYY4BLai57jfUiAilULbuC3U6+w4hFUTUWm8tQpJWVHUh4LYCKZvFyGTekX+HfxS.WENvUgCbUVNfqBO3pNef6Df7Rhvy.MT4PCUNzPc4fFp7nQw4EMz.8RtzB.MJxgFE4PihKGznHOZTZ9PC1KXrRM4xUla33VSfiRbvQIN3nzxANJwCGkma3njZ4RxUmmnQSEWYRzn1OJm.WflhOXlAZJygdk4PuxKGzqLO5UYtQOspJZUjW.6spvAGU3fiJKG3nBObnMuvgpRwpJJKh.uZbvgFGbnsbfCMd3n5bCGkpAsrHh7VkCNpxAGUWNvQUd3n1bCGUKKWUoxB.NpwAG03fiZWV3n0bAG0Rw.TddwihpxZre8J+GiGZbLh03XDqIuTvCszLhUla7HvpW.AS03HwpwQhUSY4fGoHwpnN23QMkZU0t7QSWFGgbYLGVHcW5Q5g2DD6vpWOnFvGYG3bVUbOVYoY7aIzhXPNRWOsnN2.Um2AVbdGXo4cfkm2AVYdGn17Nvpu4Axt2vMG4SsBu2cAg85rS3MPjIgTYNg+Mfi+MpW
                                  

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

                                  T 2 Replies Last reply Reply Quote 0
                                  • T
                                    tiesvdam @d.healey
                                    last edited by

                                    @d-healey Thanks i will try it out! Thank you

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      tiesvdam @d.healey
                                      last edited by

                                      @d-healey Perfect, its not glitching anymore. But the sound does not loop yet. I would like that when it is played it plays in the area you selected with the end and start point

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

                                        @tiesvdam You need to modify it so that it edits the loop points instead of the sample start / end - or when you edit the sample start / end you set the loop points to match.

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

                                        T 2 Replies Last reply Reply Quote 0
                                        • T
                                          tiesvdam @d.healey
                                          last edited by

                                          @d-healey no idea how to do this but will try my best. Thanks for the info

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            tiesvdam @d.healey
                                            last edited by

                                            @d-healey How do you address the loop points? I want that when the sample start is determined, so also adjust the loop points

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

                                            12

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.5k

                                            Posts