HISE Logo Forum
    • Categories
    • Register
    • Login

    Non Repeating Round Robin Help

    Scheduled Pinned Locked Moved Scripting
    23 Posts 4 Posters 855 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.
    • CasmatC
      Casmat
      last edited by

      Hey guys!

      I have this script "roundrobin1" in my HISE project:

      oninit:

      const var sampler0 = Synth.getSampler("sampler0");
      sampler0.enableRoundRobin(true);
      
      const var sampler1 = Synth.getSampler("sampler1");
      sampler1.enableRoundRobin(true);
      
      const var sampler2 = Synth.getSampler("sampler2");
      sampler2.enableRoundRobin(true);
      
      reg counter = 0;
      reg lastCount = 0;
      

      onnoteon:

      function onNoteOn()
      {
      	counter = (lastCount - 1 + Math.randInt(2, 5)) % 5 /*round robins*/ ;
      	Message.setVelocity(counter + 1);
      	lastCount = counter;
      }
      
      

      I had followed David Healey's non repeating round robin video on YouTube, but when I use my three samplers, the round robins still go incrementally. Thanks!

      i make music

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

        @Casmat

        sampler2.enableRoundRobin(true);

        Needs to false, not true.

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

        CasmatC 1 Reply Last reply Reply Quote 0
        • CasmatC
          Casmat @d.healey
          last edited by

          @d-healey

          changed it to false, but the round robin number doesn't change now in the sampler view

          i make music

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

            @Casmat Have you mapped your RRs to velocity?

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

            CasmatC 1 Reply Last reply Reply Quote 0
            • CasmatC
              Casmat @d.healey
              last edited by

              @d-healey

              no, i just jave them as regular RR groups from the filename token parser setup

              i make music

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

                @Casmat Well I don't see anywhere in your script where you are changing the active group but I do see you changing the velocity.

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

                CasmatC 1 Reply Last reply Reply Quote 0
                • CasmatC
                  Casmat @d.healey
                  last edited by

                  @d-healey

                  ahhh, how what would i replace to affect the rr groups?

                  i make music

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

                    @Casmat You tell me how you think you do it and I'll nudge you towards the correct answer if you're drifting from it. If I just tell you the answer then you haven't really used your noodle.

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

                    CasmatC 1 Reply Last reply Reply Quote 0
                    • CasmatC
                      Casmat @d.healey
                      last edited by

                      @d-healey
                      would we be using the setActiveGroup?

                      i make music

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

                        @Casmat Yes, try it and see.

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

                        CasmatC 1 Reply Last reply Reply Quote 0
                        • CasmatC
                          Casmat @d.healey
                          last edited by

                          @d-healey
                          the sampler still has no chamging rr groups, i changed Message.setVelocity to Sampler.setActiveGroups

                          i make music

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

                            @Casmat said in Non Repeating Round Robin Help:

                            the sampler still has no chamging rr groups, i changed Message.setVelocity to Sampler.setActiveGroups

                            Sampler.setActiveGroups won't work. You need to replace Sampler with the reference to the specific sampler you want to affect.

                            Are you wanting all samplers to changes to the same group at the same time, or do you want each one to change to a different random group?

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

                            CasmatC 1 Reply Last reply Reply Quote 0
                            • CasmatC
                              Casmat @d.healey
                              last edited by

                              @d-healey
                              i would like each sampler to change to a different group

                              i make music

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

                                @Casmat In that case you should use one RR script per sampler. Of course you don't want to re-write the same code 3 times, so this is where a reusable module is perfect.

                                This is what we did in the Hackspace course (I think it was in part 3).

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

                                CasmatC 1 Reply Last reply Reply Quote 0
                                • CasmatC
                                  Casmat
                                  last edited by

                                  got it! thanks for clarifying!

                                  i make music

                                  1 Reply Last reply Reply Quote 0
                                  • CasmatC
                                    Casmat @d.healey
                                    last edited by Casmat

                                    @d-healey
                                    Just tried testing it and it seems to not work still. the RR groups in the sampler view don't seem to change number. this is what I have so far:

                                    oninit:

                                    const var sampler0 = Synth.getSampler("sampler0");
                                    sampler0.enableRoundRobin(false);
                                    
                                    reg counter = 0;
                                    reg lastCount = 0;
                                    

                                    onnoteon:

                                    function onNoteOn()
                                    {
                                    	counter = (lastCount - 1 + Math.randInt(2, 5)) % 5 ;
                                    	sampler0.setActiveGroup(counter + 1);
                                    	lastCount = counter;
                                    }
                                    
                                    

                                    Here's the hise snippet as well:

                                    HiseSnippet 2257.3oc6b0sbabaEdWIgXQFKYmLIcZm1NyVOsyPkXqvkxVoynoiV8aBqsjnIUTSuHiCzRPRDsDXCVrxVMiq0zIOB8lbWdD5ifeDZmoO.9pNSuKuAs.6tjKVJJEJpehnDzUBXW.78c.1y4fymkqvntnf.JyvL21G3iLLuMn1ADdqUZAwDixqZX9yAa2BY8Y9LbyVbqkgAAVUvPB0X4C7EMP0MLMG+SjusYtILh94GVbYnGj3hR6xvXGJ1E8DbaLOs2JNOF64sNrNZabak29gNkcojUndzPAxFGTzvG5tGrIZSn70FCXX9VqUGyorZbHGEXXNwxz5GTqE84j32eGb.dWOjrgsQMwDE285Tu5RDK60XkVXu5U5XABLLLAURsGiGaOdOvF353t8mZWtazCrRGgp8vbrrva7LvyVEdEUfWefjoBjlHFRuCnlKC6ySehDOuMnLgiXMfBytJTheWCyWCVgJdABe11v8PqyDM5NfByWr38slqXwYVnQHwkioDKJYSJGsEovL4+l74x+x7V89nFM56yjKCi54gX88wxcZ1IMvBjv16hX22ZenWHp6KJneVaJ33sopa4twrV4EojxDLeKeD43NHXjXpD1+oSPk3U4QV+oSr907v0QLCrvHmGrGYW4m.EMhvr5wdiSy3sOiiuzvM9Ikie8WT7LM5gD62MZzXOwIwkpGvJdtLKmOXoz4xrL2vMKua1YYo17gadlRNOK01+LXbUmB6y9TT5rOE8yl9YkWExgROlIe7J9f1Gw3XouByUQ6KB+D6+LGXUTvdbpuHRxJz19Th7ScyIiW5oRV5xsEwahV46.vsatrH.TSFMjT23Epq6ApMdNtNuU2Nd8eyoERF0LsGlCG8BYavtMiWfFXujnZkAeSkpa8GWakse15a8jUWq5K2fx7aIbj07.qGX0+nvVE1o11V+InmmOTv1Yl0mzTZN6xpamkUUfDjWDqlF3S7jlJgeCgI9LQpcapFqFyQs6e6RwcHsApuvtTlXWtJrNNLPcki6uF9ujYmV5RtK8d6AwobJ2bPNob6vFNY4lQ4d4lnGeHSrRJKYOFt3MTQJIhcx1AbAJh2XM+kGY+7wD5t1Q6P3fcjGMcgdwV.QHuZxglR+CK6Xb53osJO+5qu7rjBOeyyu1wytAiSY4gOVgkNe40HVpdl8tu5ZGKORxMJdYWWgsu4q5ksEOBacFd19aNBa2DEjfyXNeTNZrnSaZX.pFhDf438wbkfBuYwgh+p61Vacyi+pdtr19lG+mSg+u9yu1v+bmlj3Ur.egp+tds.G5zqE3vebKvf4lqzwPYm+7.5VK6cJRYzW9WuAblN6sgRI+29paXjW0a11GdCi7ptx9Oi3j+nUX7tfMn0C8f7rE7Tl8cxCvTRlpLJKknb1OPsJvmaUAcPg36.pf4ts5OFGqOXTbaxKBLlT63o.q0nAxkmBvI.q+4WLEJVc4m7XJk+sAtcNgU77n789Cb46MG+hnb825hpb8SLX6BmL7t79t5REtmCeicti2g+6sycn7qigx6BDNgQv1XRyZv19dnXQZxCBhacI+8WEFxiBqmsTZu1Y4Pg8pmBr8ObhVpkDgLHYVqDdTE4ifbw1uxXlzoZ0OgQC86cTumSzgksYP28DlBUNtEAIr6bUNtBiFDzPPmn4JSo.qDxZJsUo8TEsOhEjsuMCaK16IDjmTeHSSYYgEw8D60X2MfhnhYpxYzpTbaXz9sHVaTa6dZWpm1y0S6G1S6G0S646o8Gm1N1ftAzumSF8Jz0sFLgtDSTT0cUdykwM6tHw8ndPtq4NBRJdi6iq125Jsq1AWkzo.Q0vmQ2UVX39nS5XeqoLJY.2ZeHypydh0evJJV5rMQ7juCJbuNO7dyrP9N+9rHhzXVUtHUkKRgFPu.j3MxyPMsbkedfXhoq3BQc3ACDoAJ5LpqiQ70zQUH88efks0GZINU2ZVFjTW33sPo6a8nYlw52Y8HqExmqKjBP7kDS69weVUnyr8gV1BXkSEAIOZg7uL+MQwdGJMjFARe1bLELdmXLdKvRe5p0plDRO52sViruHLgOxNC11fRn9snDraV2uB2oMahXpHtuzXINW38ekP19JQL9mKtJxEdvQ5M9kUCkE2ySDd68TW+OU3PHs8u0IZ5T0jpVX.OSXUIl8PvfLAJWyklMT1oxraexlcv.dzXJPLIshBie0N8uo6f03cjq1f81fniEiB106.RNvNRXXmFj7szUES6shAadvNBOXtxUWBy2uaSqtjv9DQ62+ce2+cQQNiIYok56nrv2HimMcSwgK7tHurNPNUkTv9hurGiOpckrym+sxkqy8vpP8NHN7Ubg3i.QNPbC6S3ZXFFqyPecHh3pTl9W47T0y0Y25umySCgdJV54Gu7RKi8odP1Ys3S+HgZlX.Op7y.cIk0OM4hXd5xEojNWDctH5bQz4hL5jKxIGpVFjwZjoZu+BPR7KKYbiQGbOM3oiRfMtlRVhUmwux6GKpLRVxxN+SETqRC4XRyNkzErYX6ZzPlKRs5uiIKsSb6hx1R.UCQpG03+I9I4g1cJUr7g1cdngamoRvsjeOp3PliGWhuH4N75MUffvFMjPZLvvnJPlzQGSqJfVUfzSF2nTE3R3uWJUk.r6qR.+89nDf8IoDfshR.1WUTB3i9fHdZEQzfO3ijRCj.bsx.ZkAz2FWeab8sw02FWqL.qjVY.sx.cTFnzEpx.e++9G9WZkANaJC7PctH5bQz4hnyEQqLfVY.sx.ZkAtNqLPIsx.ZkA5qx.kzJCbApLPoAVYfRmjx.kTTFnjVY.sx.W6TFXN8sw02FWeab8swuNpLvbZkAzJCzQYf4tX+aFv3W89ZkANaJCLuNWDctH5bQz4hnUFPqLfVY.sx.iNJCbYfxKi0nMzkQelabA6j1iIi5QXIHQ+mcdNvFx1Vc++Sd.n3rEMZiqielqqLi+GH1E6+XJMDiYtgXLObHFyiFhwL+PLlOdHFyu+DGirF7KExosi89I5nxZwGdMWq6g2wM9+.zZN4GA
                                    

                                    i make music

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

                                      @Casmat Your snippet works here, the groups change with each key press.

                                      Peek 2023-04-10 11-05.gif

                                      I noticed you are hardcoding the sampler reference which means you need three separate scripts. Try to avoid this. Instead, reuse the same script as I demonstrate in the Hackspace course.

                                      The problem with writing 3 scripts that all do the same thing is it doesn't scale well and you give yourself additional code maintenance. Imagine you have a project with 10 samplers, now you have 10 separate RR scripts that all do the same thing except one line is different. Then you find a bug in the script, now you have to go through 10 scripts to fix the bug 10 times. It makes no sense to do that when you can write and maintain one script instead.

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

                                      CasmatC 1 Reply Last reply Reply Quote 0
                                      • CasmatC
                                        Casmat @d.healey
                                        last edited by

                                        @d-healey

                                        Hmm, that’s weird, it doesn’t seem to change on my end, I’ll try fiddling with it in the meantime and yes, I had the scripts all connected, I had just disconnected them to see if that would’ve fixed the problem. Thanks again for your help!

                                        i make music

                                        O 1 Reply Last reply Reply Quote 1
                                        • O
                                          Orvillain @Casmat
                                          last edited by

                                          Hey, sorry for the necro bump. But if you've got say 7 RR groups... and for a particular velocity range there are only 6 samples..... is it possible to avoid the sampler triggering silence when it cycles around to the 7th group.

                                          So for example:

                                          RR1 - vel-range 60-70 - sample mapped
                                          RR2 - vel-range 60-70 - sample mapped
                                          RR3 - vel-range 60-70 - sample mapped
                                          RR4 - vel-range 60-70 - sample mapped
                                          RR5 - vel-range 60-70 - sample mapped
                                          RR6 - vel-range 60-70 - sample mapped
                                          RR7 - vel-range 60-70 - NO SAMPLE MAPPED

                                          Currently you hit a note to trigger the sample 6 times in a row... you'll trigger RR1, 2, 3, 4, 5, 6... and then on the 7th it will attempt to trigger RR7.... and produce silence, because there isn't a sample there.

                                          Any way around this?

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

                                            @Orvillain said in Non Repeating Round Robin Help:

                                            Any way around this?

                                            Put some samples there - copy them from another group

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

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

                                            62

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.1k

                                            Posts