HISE Logo Forum
    • Categories
    • Register
    • Login

    Problem with looppoints

    Scheduled Pinned Locked Moved General Questions
    25 Posts 2 Posters 407 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.
    • T
      tiesvdam @d.healey
      last edited by

      @d-healey Then this is happening, almost the sameSchermopname 2025-04-02 om 16.10.02.mov

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

        @d-healey, I also have the problem that the audio waveform shows only the line following the audio of the first note in my sampler. Is it possible to do this with all the notes?Scherm­afbeelding 2025-04-02 om 16.17.08.png

        d.healeyD 1 Reply Last reply Reply Quote 0
        • 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
                                            • First post
                                              Last post

                                            47

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts