HISE Logo Forum
    • Categories
    • Register
    • Login

    Change Sample map via Prev-Next Button

    Scheduled Pinned Locked Moved General Questions
    37 Posts 6 Posters 1.4k 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 Former User @Tania Ghosh
      last edited by A Former User

      @Tania-Ghosh I just used a nested if statement

      if (value)
      {
          if (cmbsmp.getValue > 1)
          {
              cmbsmp.setValue(cmbsmp.getValue() - 1);
              cmbsmp.changed();
          }
          else
          {
              cmbsmp.setValue(whateveryourmaxvalueishere);
              cmbsmp.changed();
          } 
      }
      

      Then do the opposite on the + button, if it's reached your max value, then go back to 1

      in my case i just ignored the event if it would otherwise go "out of bounds", instead of wrapping round (i guess that's what Lindon meant)

      Tania GhoshT d.healeyD LindonL 3 Replies Last reply Reply Quote 0
      • Tania GhoshT
        Tania Ghosh @A Former User
        last edited by

        @iamlamprey said in Change Sample map via Prev-Next Button:

        cmbsmp.getValue > 1

        Superb... :) Thank you :)

        Tania Ghosh

        1 Reply Last reply Reply Quote 0
        • d.healeyD
          d.healey @A Former User
          last edited by

          if (value)
          {
              cmbsmp.getValue > 1 ? cmbsmp.setValue(cmbsmp.getValue() - 1) : cmbsmp.setValue(whateveryourmaxvalueishere);
              cmbsmp.changed();
          }
          

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

          Tania GhoshT 1 Reply Last reply Reply Quote 0
          • Tania GhoshT
            Tania Ghosh @d.healey
            last edited by Tania Ghosh

            @d-healey @iamlamprey
            Can you correct the code?

            Content.makeFrontInterface(500, 400);
            const var Sampler1 = Synth.getSampler("Sampler1");
            const var prev = Content.getComponent("prev");
            const var next = Content.getComponent("next");
            
            
            
            
            const var smpmap = Sampler.getSampleMapList();
            const var cmbsmp = Content.getComponent("cmbsmp"); //ComboBox
            
            cmbsmp.set("items",smpmap.join("\n"));
            
            
            inline function oncmbsmpControl(component, value)
            {
            	Sampler1.loadSampleMap( smpmap[value-1]);
            };
            
            Content.getComponent("cmbsmp").setControlCallback(oncmbsmpControl);
            
            
            inline function onprevControl(component, value)
            {
            if (value)
            {
                cmbsmp.getValue > 1 ? cmbsmp.setValue(cmbsmp.getValue() - 1) : cmbsmp.setValue(1);
                cmbsmp.changed();
            }
            };
            
            Content.getComponent("prev").setControlCallback(onprevControl);
            
            
            
            inline function onnextControl(component, value)
            {
            if (value)
            {
                cmbsmp.getValue > 1 ? cmbsmp.setValue(cmbsmp.getValue() + 1) : cmbsmp.setValue(4);
                cmbsmp.changed();
            }
            };
            
            Content.getComponent("next").setControlCallback(onnextControl);
            
            

            Currently I have 4 sample Maps. It is working but only two steps.

            Tania Ghosh

            ? 1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @A Former User
              last edited by

              @iamlamprey said in Change Sample map via Prev-Next Button:

              @Tania-Ghosh I just used a nested if statement

              if (value)
              {
                  if (cmbsmp.getValue > 1)
                  {
                      cmbsmp.setValue(cmbsmp.getValue() - 1);
                      cmbsmp.changed();
                  }
                  else
                  {
                      cmbsmp.setValue(whateveryourmaxvalueishere);
                      cmbsmp.changed();
                  } 
              }
              

              Then do the opposite on the + button, if it's reached your max value, then go back to 1

              in my case i just ignored the event if it would otherwise go "out of bounds", instead of wrapping round (i guess that's what Lindon meant)

              thats what "wrap around" means....👍

              HISE Development for hire.
              www.channelrobot.com

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User @Tania Ghosh
                last edited by

                @Tania-Ghosh Hint: Both your previous and next buttons are checking for the same condition

                @d-healey I really have to learn that single line if statement wizardry 😲

                @Lindon took me a minute 🤣

                Tania GhoshT 1 Reply Last reply Reply Quote 1
                • Tania GhoshT
                  Tania Ghosh @A Former User
                  last edited by Tania Ghosh

                  @iamlamprey Thnaks i have modified the code. Now ERROR is

                  Interface:! Line 17, column 24: API call with undefined parameter 0
                  

                  Line no 17 Giving me the error. ComboBox and Buttons working to change sampleMaps but it is throwing ERROR after reaching out bounds/wrap around.

                  Content.makeFrontInterface(500, 400);
                  const var Sampler1 = Synth.getSampler("Sampler1");
                  const var prev = Content.getComponent("prev");
                  const var next = Content.getComponent("next");
                  
                  
                  
                  
                  const var smpmap = Sampler.getSampleMapList();
                  const var cmbsmp = Content.getComponent("cmbsmp"); //ComboBox
                  
                  cmbsmp.set("items",smpmap.join("\n"));
                  
                  
                  inline function oncmbsmpControl(component, value)
                  {
                  	Sampler1.loadSampleMap( smpmap[value-1]); //Throwing error
                  };
                  
                  Content.getComponent("cmbsmp").setControlCallback(oncmbsmpControl);
                  
                  
                  inline function onprevControl(component, value)
                  {
                  if (value)
                  {
                      if (cmbsmp.getValue < 1)  // > didn't work so <
                      {
                          cmbsmp.setValue(cmbsmp.getValue() - 1);
                          cmbsmp.changed();
                          
                      }
                      else
                      {
                          cmbsmp.setValue(4); // I have 4 Sample maps 
                          cmbsmp.changed();
                      } 
                  }
                  };
                  
                  Content.getComponent("prev").setControlCallback(onprevControl);
                  
                  
                  
                  inline function onnextControl(component, value)
                  {
                  if (value)
                  {
                      if (cmbsmp.getValue < 1) // Same here
                      {
                          cmbsmp.setValue(cmbsmp.getValue() + 1);
                          cmbsmp.changed();
                          
                      }
                      else
                      {
                          cmbsmp.setValue(4); // same here
                          cmbsmp.changed();
                      } 
                      
                      
                  }
                  };
                   
                  Content.getComponent("next").setControlCallback(onnextControl);
                  

                  Tania Ghosh

                  ? ulrikU 2 Replies Last reply Reply Quote 0
                  • ?
                    A Former User @Tania Ghosh
                    last edited by A Former User

                    @Tania-Ghosh add whatever functionality to your combobox

                    HiseSnippet 1478.3oc4X80aSbDD+t3boXCAAHdnOzJsxpOXKfH6P.pf1hwNInnR.q3PDuAaNu1dE2s6o81K0oH9tzOBUpeA3iDeCZmc267s9hiwXnkpV+Rt4e69alc1YlMcEbeRbLW33V9vSiHNtWxq2oL4nNivTlyda639Md97vi4GyGiXjwRTjfbBhLFGFEPbZeZDNNlz2w0sziUV3VdUG8u2+v13.Lymjyxw4HN0m7DZHUlysaqelFDrKtO4PZnk1a0ZOeNqCOfm.nqjWCmHr+qwCIOEqTaEOG201oOUxE8jXII1wc0179m1aD+WXF8OhFSOF.IPzzoGrPF16xC5qPr5amNinA86lEEhcbb85lGSJYhIW2aeZe5D94wlqnEfxsvNd3tx7fWykDdtVvaUC7tpWOeAMRlKQgsK5sGSRDCv9SeLYz0Yk+XUuNbPClbiP7qI6J.hIVT6NMZbSzVMZT+AqWY8JvAQrDcBVf5oO2EMQ+HRmmrwPhTCRMUspYxqVzP+viiCi.yx1Tkg7vHNCHpU0H9LVoS1NOaTB0VjquNC87zWILcGVuBkEPYDzfDlujxYHNy.AkoBdPM+L6tIrvAIj5qW4MqWoLHNlGP1HRPUK4ginwnXsOiBwQn.NjG2+9npnajZFrcuUuky2u2HVwVu0cvAAGCo50J.oyG4p.wG.2zAnZYzH32aL+Q8yrIJbcjRgZ0Q+jEuZUCorp0QOLiWbldm0tagZVGc+4nHrX3wUqq7jB6t+HLaHoes5OPK4syOpYN4mcLyJXb9QLUpvmyH1OfNiStPQrar.QLU3+SNhYx8mcDyJXXhXVApmxkjmwpUuxapTtxaqfJJZvfYJKc4fJAyTrpRuXdFVikDdLQjchjoHTxa5ZpWbwpo5ahIVJxY6wnxmEQRoyq5pjY75LoMbl3r1rx8QatZWaFpky5rE0cROyfx6kRUG9RpKtekzh6cTMgayG6PATdAOSRfiN7.8LWyMqEaQ6ubp8sSjRNSa8Zdp6HSrcR24EyVU1xLr846sMVhUMnRcFvAiHBIUcL4tM4DnyuocUYusIwuVxizdaZFJrxKh+NNeO2r0oSHPupEbmC5c6pnoRRHroa3YJLC0kaVYxmal+4sy+bqJJuuHVN+XWNNd2PKb7tWzhFuOODVDr.X6tBggg7Q0TBOgfELUC3EcizA57M52r2nWgWjM5riJ.Crv6mDfkSOEiZzsTAv0voFWPMR.KlJO0dztOhQaZLyQaZNqaAKHbupWWpzezrw6Jy.uPR4e23McPw081Yv.huLGrq5s6KV1oBWNn7sFnbMudRAACcOFlNSlFOU7xlP6ywr6QK7r6cED0rQ8n+pkZuqU6DHdIll6u2RuUOJjmvlZuRQ9AjHBVBG+V1bgVGbviE7jnhV89GpSVNT.s5fPgsfmwHPbWZ6icD733Af6nWqXaQcSDCUwpbNGPNgHhml2SSBgydniZPrpZjpp7yiIpyZp+9XofN1Va8tz3Pr97FdPiltYA5MKPe6BzaUf9NEnuaA56kSaBn6iiTYFpGTUn65WsXcWgEnKFbYKMaSGNYwMbltDikpSh4ZbY87sY73m09B71rO+Ev9zq2VZwf6G34ikyvXOp5nZG1IvcTfiBiWCZRO.mDHy3Nc8h84LdzHNi5O8MBHCe3PhvF6yzgdjTBWHy4b8VGPBH3XqqzeWqm.CsiESeQ+iJVzbwiEy675q8LvEoJxg9uQexR+uuO47BcWNsKIB1cg7e4myWxSWWGoZC+kBpGvSjP60rVbdPevdPueehc2vUTcXMzMTzJ.0iv5qI9S3WpvlYsNUBalIzwOao.eK8a8SNbKYl8UO9W.zTNvNkNFlvPAIn81+HnLD6K3uz27RJEVuflCfRl9+aYYu8UznlYugxyqwFMbBgdUuz2WcQ3VPDd11r4RXysWBa1ZIr4NKgM2cIr4dKgMe+bsQMlviRj7PSQRfQ2cLIVt6LIwpjyeA7fARUO
                    
                    Tania GhoshT 1 Reply Last reply Reply Quote 1
                    • ulrikU
                      ulrik @Tania Ghosh
                      last edited by

                      @Tania-Ghosh

                      Content.makeFrontInterface(600, 500);
                      const var Sampler1 = Synth.getSampler("Sampler1");
                      const var prev = Content.getComponent("prev");
                      const var next = Content.getComponent("next");
                      
                      const var smpmap = Sampler.getSampleMapList();
                      const var cmbsmp = Content.getComponent("cmbsmp"); //ComboBox
                      
                      cmbsmp.set("items",smpmap.join("\n"));
                      
                      
                      inline function oncmbsmpControl(component, value)
                      {
                      	Sampler1.loadSampleMap(smpmap[value-1]); //Throwing error
                      };
                      
                      Content.getComponent("cmbsmp").setControlCallback(oncmbsmpControl);
                      
                      
                      inline function onprevControl(component, value)
                      {
                          if (value)
                          {
                              cmbsmp.getValue() == 1 ? cmbsmp.setValue(smpmap.length): cmbsmp.setValue(cmbsmp.getValue() - 1);
                              cmbsmp.changed();
                          }
                      };
                      
                      Content.getComponent("prev").setControlCallback(onprevControl);
                      
                      
                      
                      inline function onnextControl(component, value)
                      {
                          if (value)
                          {
                              cmbsmp.getValue() == smpmap.length ? cmbsmp.setValue(1): cmbsmp.setValue(cmbsmp.getValue() + 1);
                              cmbsmp.changed();
                          }
                      };
                       
                      Content.getComponent("next").setControlCallback(onnextControl);
                      

                      Hise Develop branch
                      MacOs 15.3.1, Xcode 16.2
                      http://musikboden.se

                      Tania GhoshT 1 Reply Last reply Reply Quote 2
                      • MikeBM
                        MikeB
                        last edited by

                        This is exactly the function I am trying to code for the Audio Loop Player
                        How can I implement this for it?

                        "One hour of trial and error can save 10 minutes of reading the manual."
                        "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                        HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                        ? ulrikU 2 Replies Last reply Reply Quote 0
                        • Tania GhoshT
                          Tania Ghosh @ulrik
                          last edited by

                          @ulrik Yeahhhhh... Superb Thank you so very much :)
                          Working perfectly.

                          Tania Ghosh

                          1 Reply Last reply Reply Quote 0
                          • Tania GhoshT
                            Tania Ghosh @A Former User
                            last edited by

                            @iamlamprey Awesome. Thank you :)

                            Tania Ghosh

                            1 Reply Last reply Reply Quote 1
                            • ?
                              A Former User @MikeB
                              last edited by

                              @MikeB I'm not familiar with the Audio Loop Player, what are you trying to do?

                              1 Reply Last reply Reply Quote 0
                              • ulrikU
                                ulrik @MikeB
                                last edited by

                                @MikeB do you have a snippet so we can see what you mean?

                                Hise Develop branch
                                MacOs 15.3.1, Xcode 16.2
                                http://musikboden.se

                                1 Reply Last reply Reply Quote 0
                                • MikeBM
                                  MikeB
                                  last edited by

                                  It works exactly once - then it doesn't work anymore?!??

                                  HiseSnippet 1459.3oc4W8taaaCDmJNJs1adXcqeXeZPvaevFs0wt+c.aEyMINEYMowHNMXXEEALRz1DUhTfhNodEAXOB6QXOB6QXOB6QXOB8MX6HkjEUhhimGRwvlMBbNd7t6G+cj7N1SvcIQQbAxp79SBIHqOzt+Dlbz5ivTFZqMPVegc2mtqycb5IHQD4ZB9IQDgy1bdXOe7Dh3vV2Es1jPbTDwCYYU5oJCsJuLR+4ce6ZXeLykjMDBc.m5R1lFPkYi1qyyn99ah8H6SCLl886rkKmsN2mOF.YI6VnPr6qwCIOGql1R1HqU55QkbQeIVRhPVKuF2aR+Q7SXwy+.ZD8HehRnMpO3n3g2j66oPrZTz5in9d8RIiHDxxtWF0TJlZto8NTO5zwynnOVqvIyBS9vZoYAu1lvq07COKC3sbL7tgceWAMTloQgsOvdKljHFfgTfIrhmKZoGsh85bXFLYy.7qIaJ.goVT+gsZcamGzpUiutZE0WHUDIcNFKbdxXOJOaWPamG6n23zbHQpgqVpdM87zaWbRlYMky5xFRYjl9brmdFaR8IQPb483b+5wgKKX6gYd7.HDoPUEDdPHmAB0qEqV62LadFieT6KzDs1yXwyIuQdgFnTdl4CmHN9BmuRYsySaT0+7XmWVKBGD5SZ0t4I3iqc6Tw6lW7d4EuedwGjW7gZwWkDxpUVc0XJnuVc0JTlOP4NCFybkTNygyz5UvW.btaJ1uM.T+wjFUq71pUbfOSyq5LUr6ltIq3LbS3pBUJsds21auc+ttqu+gat61azcuSqcKEE7RcHdkheTQPCjltivrgDOc1+T3uYl4TQHA5qi88OBtTnd9UTJ4u5pI6epVI92hMMV2g4L97TV9YUHooVPwKK5.m5oCqjS3yrUL.jCT5qWeGLPwBv4vYf5pybMZjRNESPpQOMlmltLU64JBzpwu7zbAnsbAPMVbXpXCm6zVgmxWJLm04jhSIF3tg45TcVrn0oZ7qt04s9GsNiu+n30oAtyVmweMWcbIYWV8FUdakxUNshyYUMXPg5RbrOQTnZU0VwrLrNabvQDQJMlNQnrS95Z1WbcMyxttwriwD4rsXT4tgD1EUsCkPoPcukSPELUotp2GkT0quO0iHPTn310r04GjFvPmDqrRZiGWjwqMVJ4LswqXqxFSscZOKymspcrKlsW2N9pkBr9EasAVhUE8S3AfaBIBIUQ6VaPNF5lJtEfx1aPhdsjGpIpj8d.ttTp5MSC3OsamISE5bPm.blNzM6DIIg8o+HwrCOjQnruLhMya+guQj94vNznc3AfSvBXXqklWupobC7+BCu9qyzqW6xSFY9829AC+9NQmSndxQSG3WB5LhPGNxng1u4bg97srAMNx8F6ik46lT0BchB3nXt11TslwhnxIlIfqjVLmW3dC6dTo6nhw6REfWXi7UMdSZXupc2ACHtxLvtr8le+Ue24lP4SSgxzFlIwMleS6y23zLdH0uOuOjJbteHEzWmKj1xcVVmK2W.0knrglgRAytLLvEdlCuGmKUUeLeHWbGh.iJjf6yMaxwDQTdOnZSL9sbet8YaVzryVTfhNrsT1nuTx1x9kVHe.W5PkpyWCTuTQqRycBt3WG1pnmes7+pec36uaZJMev8Rd.a4TL1mpx2cYGS7gyIZL9IPIsA3w9xzQyeHYGNiGNhynt42mIEzgCIBSrW3B5IRIrW2rB2dDeBNxXC8W1YanOSr3rGU9avEsmetXV4qOyNFtNpS1N+2nBQo+eVgXO9XIbCK7rOAUcW1yGGzGtX1k.HgwH9pFpgVFTlpkakdeVeBySK7mvmDksUxVIJamp78RLBvtB9gtw82p1Kec8Hv5louSur8NJYmociaa2pYK3tbO5gttJ59NsQnhs4tKfM2aAr49KfMOXAr4gKfMOZAr4qloMphQOYrjGDeTDFnWW86KrrlVe2pD5u.qro+EC
                                  

                                  "One hour of trial and error can save 10 minutes of reading the manual."
                                  "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                                  HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                                  ulrikU ? 3 Replies Last reply Reply Quote 0
                                  • ulrikU
                                    ulrik @MikeB
                                    last edited by

                                    @MikeB I can't open the snippet, Hise just compile and compile and I have to force quit Hise

                                    Hise Develop branch
                                    MacOs 15.3.1, Xcode 16.2
                                    http://musikboden.se

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User @MikeB
                                      last edited by

                                      @MikeB @ulrik opens for me... taking a look

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User @MikeB
                                        last edited by

                                        @MikeB Try this:

                                        Content.makeFrontInterface(600, 500);
                                        
                                        
                                        const var AudioLoopPlayer1 = Synth.getChildSynth("Audio Loop Player1");
                                        Engine.loadAudioFilesIntoPool();
                                        
                                        const var Random = Content.getComponent("Random");
                                        const var Knob1 = Content.getComponent("Knob1");
                                        const var Next = Content.getComponent("Next");
                                        const var Prev = Content.getComponent("Prev");
                                        
                                        
                                        const var inst = ["sample01.wav","sample02.wav","sample03.wav","sample04.wav","sample05.wav","sample06.wav"];
                                        
                                        
                                        
                                        //Knob1 Sample
                                        inline function onKnob1Control(component, value)
                                        {
                                            Synth.getAudioSampleProcessor("Audio Loop Player1").setFile("{PROJECT_FOLDER}"+inst[value]);
                                        };
                                        Content.getComponent("Knob1").setControlCallback(onKnob1Control);
                                        
                                        
                                        // Random
                                        Random.setControlCallback(onRandom_Control);
                                        
                                        inline function onRandom_Control(component, value)
                                        {    
                                            if (value)
                                            {
                                                Knob1.setValue((Math.randInt(0, 5)));
                                                Knob1.changed();
                                            }
                                        };
                                        
                                        
                                        
                                        // Prev
                                        inline function onPrevControl(component, value)
                                        {
                                            if (value)
                                            {
                                                Knob1.getValue() > Knob1.get("min") ? Knob1.setValue(Knob1.getValue() - 1) : Knob1.setValue(Knob1.get("max"));
                                        	    Knob1.changed();
                                            }
                                        };
                                        Content.getComponent("Prev").setControlCallback(onPrevControl);
                                        
                                        
                                        
                                        // Next
                                        inline function onNextControl(component, value)
                                        {
                                            if (value)
                                            {
                                        	    Knob1.getValue() < Knob1.get("max") ? Knob1.setValue(Knob1.getValue() + 1) : Knob1.setValue(Knob1.get("min"));
                                        	    Knob1.changed();
                                            }
                                        };
                                        Content.getComponent("Next").setControlCallback(onNextControl);
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • ?
                                          A Former User
                                          last edited by A Former User

                                          Sidenote friends, I use Console.print(whateveri'mtryingtofigureouthere) religiously when something isn't working. I also try and approach it from a logic/pseudocode perspective, an example would be:

                                          1. What is button "Next" supposed to do?
                                            A. Increment another control. So Slider.setValue(Slider.getValue + 1).

                                          2. Why isn't the "target" control updating?
                                            A. Because we need Control.changed()

                                          3. Why is the button sticking?
                                            A. Because it's not Momentary.

                                          4. Why is it calling the function twice?
                                            A. Because we need to add a check to ONLY call it when it is ON (value of 1).

                                          5. Now it works but the slider is going to infinite/negative infinite!
                                            A. Now we add a check, if the slider is already its MAX value, we set it to its MIN value, or vice-versa for prev buttons. This done with an
                                            if statement.

                                          Incremental/iterative logic helps me arrive at a working solution, after that it's just optimizing the code for performance/readability.

                                          Hopefully this helps someone :)

                                          1 Reply Last reply Reply Quote 2
                                          • MikeBM
                                            MikeB
                                            last edited by MikeB

                                            Great thank you very much.
                                            I have found the error.
                                            The slider was not from 0-5 but from 1-6 so HISE crashed every time.
                                            Probably because there is no "sample07".

                                            And here is the finished snippet - Prev/Next/Random load sample in AudioLoopPlayer

                                            I make a copy in the category Snippets

                                            HiseSnippet 1533.3oc4XstaaaCEVJNJq1qYncq+X+jvXCPFsNwt21v15pyEmgrF2XDmVTfhhLFIZahJQJPQmVut.rGk9nr2f8JrGg8FrwKRVRtxWpWcxvl.BPN7vCOe9b9Nj7v1LpCJLjxLLKd7v.jg4Us5Ljv6uSeHlXr+tFleoUsaW8wnWyq1lgNq5QPhK0Gr0.WL8.JMnsGbHhYr8v.XXHx0vzrvOHM0r3pFpu+7gaC8fDGTxPFFOkhcPGf8w7jQa23QXOu8ftniw9ol8caruCkrC0iNP.yBV0LBfNuD1C8XnbZqXYXtVSWLmx5vgbTng4paScG1oO8UD87eJNDepGRJT2niXgzCuG0yUhX4nF6zG641NNbDZXXZ0NI3TPGbtgUKrKdz3IAoqoT.RrHc7vbkoAu5ogWs4Gdlof2pZ3ccqNNLb.OQiDaer09DNh0EJRAogkdtFq7KW0ZGpXFD9F9vWh1iIDFYg88qU6Vf6UqVkuc8RqWZyMAGPgt5zeWrGJDfIbJHfR8.UWpeqWpIoGlf1vS..k+2S5eARosEd2VBvM2r5EzmLXDEPDjyPN3LHKbY6xQdZ7xu5fG.TksazCwUTEkjcY07.xIBhlYYYbJYghJme.HlBHW.pe.kHDrKqUOlMOhPOs9DMQocLKjaeLQCjJGa9xcZl37kJKewmsEY5sXL3PPGnefl3CRngUUUqrO7YZr7ed.34kCUtsV8MdE7rx2JV71YEuSVw6lU7dYEuuR7EWR0MZVjNXBBQdHGNlRVBNDS7Daa.5Nfn7.fRTtVRtXh8MbhYV2RDu8Ffprdo2rdIf3aTEkJMqQ5nsVyu1ZiPDWxGrK+l1Gc3O1bmiOYuCOX2lGcd4aJyjOW4hWHYumK9apUPx0JBj6.87NUbnmcVreoTDDsiw1C37kP5Jk2zNJ+nfV2IohC4kmyNqbyzx7rNai6BriGVJGQBjepXtDHOUp21tETvKXhEWb3is73wJUjPH6zc5CI8Pt1wZNWmxuTNhRcyskcFaRUaRmO6hsYF96EG9q.99jgrK6iIkq.d33Io2wnpf5U.eyDmlXgfutrJOVblIwocvT9D1TAgKsKpntDulE.t3oARuuPzfh4xA9Nv3ot4fCbyYxAjjo+Ib.8kYxmCjJBbQyARmGnbzgD6JkdSohkNuDXbUc6lqtHf6gX4pV1xFaZFZSF3eJhEmvimnn2krMGYM4liR26liN5mZhTx9DL+v.DYRsLYDkxDMOsZDpDSkqZc5ShZcRWdXfEcHcEK84GFJDmt6UiIYcGOr3RfJq+HKE6YjwqMSiS450rjbk2CGmwV4dM4X6S1eWHGJ6bLJNHhMAHFGKC6l6hNSzRttOxhV6hBeImFnBTQbaQpY1gpWOxi+1yZLLQf0.G1h5KVFHaXb9IYkWalgwIrvMdViPNJnC9mQoewAw9AIh2ngwb8iHJnmX4u9jTd5sdS+mf0rRHIq6aooV2eJu08cas+ZVsntC7f7ru5f7oVhTHp1xzdurEdRHlOLcfYo7TDyKbutUaL2oe93ckbvqfqtrwazC6rtUytcEcfj.1Us16YK+WwIMT9rXnLp4dj9Abtg061pwGhGbKXtevMQmPNhzVlZLUt7Xl3nMLoWZWIgYSBTDKbSO7QTJWd.S5G7S2SkHhx3hkOyrQmgXgYWAYiUidyOe4OYKS43ppcKy+32ML7D9Vsbw57TfwMVzrvbmDy+kBqk2Sws5+peovKtcSJLevcFOlYwXL1AKYGMImg7D0BJL9ohSl5BG3wiGMagPKJgFzmRvNY4RbFtWODKM1y8GzVbtfOm9niiPdHXXJR6Wz3.wEagrwKGdOhE0m+XwzxWetkFt.Y0K3+FmBT3+mmBbDc.WrKZKnfnJ2K6wC76H170AIPBgf7j2K1bE48+zx0h2OqCh3pD9KwWjx5RYyHk0iUdg3CenCidhi9RpRt7UTiH9cST6aWzpkTFL5ZwVV01nlXubW7INNxvc05FF4aysW.atyBXycW.at2BXy8W.a9pEvludp1HOLZqAbputTTLP6lp1DLMGcFtYAi+157BCL
                                            

                                            "One hour of trial and error can save 10 minutes of reading the manual."
                                            "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                                            HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

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

                                            47

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.0k

                                            Posts