HISE Logo Forum
    • Categories
    • Register
    • Login

    Print array index

    Scheduled Pinned Locked Moved Scripting
    19 Posts 3 Posters 1.9k 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.
    • Dan KorneffD
      Dan Korneff
      last edited by

      HiseSnippet 1609.3oc6ZE0aaaCDVJIrK1qtXcnOrWFfPwFfKVWpsSZ6FJFpSbZ5BVSiWbZ2vJ1JXjocHpLo.EsW7JJv90rm2Og9Sp+C1NRIYQ4X6Hk5zs0Y8PPHOdG+3cGO9QlzTvcIAAbgkcgCG5SrruLp0Pl73FGioLqc21xdUjjDHcpYs0PebP.osks8xOTI0tvJV5u2b+svdXlKIoKKqmxotjGQ6QkI81r92Q871A2lbHsmwn2n9ttbVCtGuOfjkQUr7wtu.2k7XrZXKgrrQOnMUxEsjX.NV1qrEu8vVGy+UV33eJMfdjGQ0npUKvPgcuC2qsBwpdsZbL0qcy3Ubfkk8kZlr9WNb8eMzdz1zQ8m3G9Hs.mDML8G1KMK3U0DdUxN7rMf2Jgv6pnVtBpuLQhBaeHZWljH5fgPfIrBGq0R+wpnFbXDL4Z8vufri.ZLRix2tRka5rdkJ23dkJVpHDHfv8.rvoEtmuGQ37MNwJ2kHav64yYPixWOR90U5cJspcVpUaL8ToTSUGkvwFeS7zGNHaxnZlShwXlr1yZJSFxT7GYYpqM84tVFl7Zwydoh25VtBBjK5fEB7vfIFXaQ7Htxs5Kkb1lpgA1W+8rREcx32YjYby4jkfjkrYoe9dm43L8DpIUv8ljm3s1IDFKeq8.5X5ExhWAvVdz1DQpn+bLAXN4BRu6Xt4KNkCAb0Wr9Ccrbt4NluYFQdiYJjx7nLhSm9LWIkybNRuioA1y6H375xtwX7lf6zqOA.2KCsHsS43dTMeYx73wcwdNTVaxIfCeZUlVSOf86jLE2XrUjJ9MLp.4j1Qe1VHoEXi.tGYMeAE72ZEMGbZwCiE8pREekpNaohc3hxXXMM0kSja.uVfJvpA7HmXZeZrwML5zVg4ynihgb1i4Rx9rx2n3KKVn3qNkjNcljnnY.VcSRphdmXFpUl0u2QDQbdRz3.VNooQglNMJSVdtgaSLFHmsKiJ22mvlF4Jqn8V.MqUi.ELTolj0UhHYE5bsn.WpBnnXokFwlbesxf5EiUu135GgjyP+KgzLtizEYmU8PHnHQNfbX4OspkPFEwyApMLwkQI08NeV3JHyZ+mOaLZgTaxv3I6tMVhUzsiRIfzDehPRUYf1aSF.2iIj7cAz1jfWH495blnxHfSNCYMmjLkWu9vQMdMut.2lxenf22erHTFruQZUxDT2c9MAQ4cIF2Ivv3+92NQiaUOaFOL4bJ1t9ujeaO0rWCmyOYNGOs9.yKlkMSmJq1vxOyvxVe+4wxiksmX6W+Cld88OO1N8tfSL8AFlt4Xl9zW.EtFLuceOrL8ciU.NR.TnO0kPUWzjEPkCMS+tPtvbVg6UQMoR2imLdWZB3EJNbQi2nmenD5Ac5.mqm.1UP67iW7u0fIT9zPn7wnVR3Nj8nrtwUwT3Iol1b3Ag7y7CB0TP7331sn+lwvdc8s5CtKQ5d+y55oZyd79rTyUDvOf3CWMFh9DSgGbftTy3Z8l6qyUNT.7l.Ogof8YDvsKMWiMD7ffNvxQaq.SQM6K5p7UI8b.Y.QDjtuG2uGD5YLhmh9is5f9mDPTgZp6dXofdh4n0yRkCw5v8mipswZo+FrO7iNeg5W+5F51gpTM+pTK+prd9UYi7qxsyuJ2I+pb2boRXh1dX+I91keP1X0BpCkpIdFibKZWCSq5wbW8njOMVMdbz+y8xmu6N2Y4rA2y3wYKDiwVTUz4ArAPwJnmvCa1lzA22SNpWSPtGmw8OlyntoqL.6z61kHLg9DWOaJkPgojdtV8Cf6EhCLJs8Y0eDbocrHcAub4JplcWwrBWeBJDtNph8NuePWX4+2SWXVttXFsNvrKj+KONeYjtTuihNx+TP8.deIPyH9ndDvGnEvAxkXxJXIESiv1UheMfVDVaci+B9hDVMlBgRX0XgVtwlBVaQ+t9Fv1KSXpSNzrf8.xIdlozA.SKEjfCzrBzA0dpCgVQ44f9ZgGPBqvDhmoRmZOpaSN3Lg8QphNn6kCtmF2288Ixmyvasf74BxmKHetf74BxmKHetf74BxmKHeNuIe9tXQ2C6J3O2M7uUkZouptG.AL8+faEP6oZ6TM9OOkJX0CN264ttpcUeIDtlrF0xsFqmaM1H2Zb6bqwcxsF2M2Z7UyPCEIiM6K48BqwZY82.KOFiSB
      

      Dan Korneff - Producer / Mixer / Audio Nerd

      1 Reply Last reply Reply Quote 0
      • Dan KorneffD
        Dan Korneff
        last edited by

        Almost got it figured out.... 😀

        Dan Korneff - Producer / Mixer / Audio Nerd

        1 Reply Last reply Reply Quote 0
        • Dan KorneffD
          Dan Korneff
          last edited by Dan Korneff

          ugh... I'm so close, but my code is crashing hise :(
          I can't post a snippit cause the xml crashes on open... but here's the code from the interface file:
          Does anything look whack enough to bring down HISE?

          Content.makeFrontInterface(500, 300);
          
          const var Sampler = Content.getComponent("Sampler");
          const var Sampler2 = Content.getComponent("Sampler2");
          const var Gain = Content.getComponent("Gain");
          const var Pan = Content.getComponent("Pan");
          const var SamplerGain = Content.getComponent("SamplerGain");
          const var SamplerPan = Content.getComponent("SamplerPan");
          const var Sampler2Gain = Content.getComponent("Sampler2Gain");
          const var Sampler2Pan = Content.getComponent("Sampler2Pan");
          
          //create arrays
          
          const var SamplerSelectButtonArray =      [
                                                  Content.getComponent("Sampler"),
                                                  Content.getComponent("Sampler2")
                                              ];
                                         
          const var ControlSelectButtonArray = [
                                                  Content.getComponent("Gain"),
                                                  Content.getComponent("Pan")
                                              ];
                                         
          const var GainSliderArray =         [
                                                  Content.getComponent("SamplerGain"),
                                                  Content.getComponent("Sampler2Gain")
                                              ];
                                              
          const var PanSliderArray =         [
                                                  Content.getComponent("SamplerPan"),
                                                  Content.getComponent("Sampler2Pan")
                                              ];
                                              
          const var empty = []
                                              
                                              
          // Gain page index
          inline function showPageGain(pageIndex)
          {
              for(k in GainSliderArray[0]) 
              {
                  k.showControl(pageIndex == 0);
              }
              
              for(k in GainSliderArray[1]) 
              {
              
                  k.showControl(pageIndex == 1);
              }
              
                  for(k in empty) 
              {
              
                  k.showControl(pageIndex == 2);
              }
          }
          
          // Pan page index
          inline function showPagePan(pageIndex)
          {
              for(k in PanSliderArray[0]) 
              {
                  k.showControl(pageIndex == 0);
              }
              
              for(k in PanSliderArray[1]) 
              {
              
                  k.showControl(pageIndex == 1);
              }
              
                  for(k in empty) 
              {
              
                  k.showControl(pageIndex == 2);
              }
          }
                                     
          inline function buttonCallback(component, value)
          {
              if(value)
              {
                  local x = SamplerSelectButtonArray.indexOf(component);
                  local y = ControlSelectButtonArray.indexOf(component);
                  
                              if(x == true)
                          
                      {
                          showPageGain(y);}
                      else
                          {showPageGain(2);
                      }
                      
                      
                      if(y == true)
                      {
                          showPagePan(y);}
                          
                      else
                          {showPagePan(2);
                      }
                  
              }
          }
          
          
          for(a in SamplerSelectButtonArray)
              a.setControlCallback(buttonCallback);
              
          for(b in ControlSelectButtonArray)
              b.setControlCallback(buttonCallback);
          function onNoteOn()
          {
          	
          }
          function onNoteOff()
          {
          	
          }
          function onController()
          {
          	
          }
          function onTimer()
          {
          	
          }
          function onControl(number, value)
          {
          	
          }
          
          

          Dan Korneff - Producer / Mixer / Audio Nerd

          1 Reply Last reply Reply Quote 0
          • Dan KorneffD
            Dan Korneff
            last edited by

            looks like this is causing it:

            if(x == true)
                            
                        {
                            showPageGain(y);}
                        else
                            {showPageGain(2);
                        }
                        
                        
                        if(y == true)
                        {
                            showPagePan(y);}
                            
                        else
                            {showPagePan(2);
                        }

            Dan Korneff - Producer / Mixer / Audio Nerd

            1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart
              last edited by

              Which HISE version are you using? I remember fixing a crash a few weeks ago that happened when you try to iterate over an object that isn't iteratable (eg. a module reference obtained by Content.getComponent() et al.), which is exactly what you trying to do with:

              for(k in GainSliderArray[0]) 
              {
                  k.showControl(pageIndex == 0);
              }
              

              This is not how the for(... in ...) loop works. You want to iterate over the array, not the first element of it, so you need to remove the array subscription from the iterated object:

              for(k in GainSliderArray) 
              {
                  k.showControl(pageIndex == 0);
              }
              
              Dan KorneffD 1 Reply Last reply Reply Quote 0
              • Dan KorneffD
                Dan Korneff
                last edited by

                I've gotten much closer to the goal.... just one thing left. Switching between Sampler1 and Sampler2 doesn't update my display until I select the Gain/Pan button. Any suggestions?

                HiseSnippet 1808.3oc6Z8+aSaDE2tslQxZPvD+v9kIYg1jR0JsIlBrIDhzlRYUiRiZJnIMwPGNWROUm6rNeoqYnJs+G1+H6OA9Sh+C1d2Y63yoNo1PJaikHDDe26Kededu676tPKNyEGDv3FlkNbnO1vbYq1CohiZdDhPM1caCyqZIvABaGisF5iBBvcLLMW7IxYMKsjg5y6dzVHOD0EmLjgwKXDW7SI8IhjQa03GIdd6f5fOjzWS5MZrqKi1j4wF.HYQqZF9H2iQ8vOCIEaAKCSqG2gHX71BD.GCyk1h0YX6iX+JMT9WPBHu1CKentQavPgCuCyqiDwxQMZdDwqSq3HNvvv7JsRh+ECi+aZsGoCYz3I7v0USXmngNeXtvzfWcc3UK+vyTCdKEBuaX01kS7EIyHw1masKUf4cQPJPGVgxZrvStlUSFHAUrVezw3c3vCizn5cqUaU66Tq1JOnR4JkgDAjtOAwsai566g41OzNV4dXQSVeeFEdn5shl+VR8NmVNWjZNiomrjZh5HmbL4aglr3vbYipo5DMYxV6o4xDQl.ejGW6LYe6jCm6D68JkWecWNFpEsQbNZXP5DKxy60CDB3Yvh+bkx1S3yEj1W88TSm2CUCIlBqlhPlrRuL6J91XOrqXKEEsoj+.ZR8YJb0ri6JJWlOKIC0KPDclP5TNyKKl3ClDtvb4LI29AD7RtstDks8Hcv7Tk.yvpfPdXlEAYFFNW9ggyGi3nNjsubCiYa4T1IiK8fv4RNJv88Ep8.dYd0MeRs95gu+2G54ylP6fOsRYB0iPw1cGPcEDF0N.ZmpELuTvpRA2UJGDruIzKcY7pGCJm4x2UhfxaRPzwqIsXzFcIFz9gOzV0JjTlyB+mLbfyzcPtbS8y4lJkOK7s2p1axCa.xcwjQ55tYOWLU6+gPESsnYbJIrmllxtafSOT0Md0wpPoq2.bB4P5VMdjw3g0WO.qpzIHncc6S0.ur7Gf5D6QXMUhZ+tI9UFRPvFv7vq4yIvxzSWQaM2n3E9ijNQR5Lo0rHvgVKPtPWQYiBszQZXGewr13rBiJqTiI8rIkRSlQRspCveTRA6Efk7X8aqqGn4XZ3nkWOSgyo0SPVwZJ7GFpYEjPI3EDi4HHkKlJTLJUHugnZq4rivDvGGfPIQRr8Ll.uOs5JkeS4RkO6byzsaVSEYPnTMqYkm+lOE0pRGz+0XdLCFIGbLzzmy0ZxmyU+X3tgDhlfL5tThXeeLcRm90HhEgyAe0HPAhJTmB9ZQmBNb4mAANraIqnElFJDCPyTc0B4P0xwp5DqaxEajG8uhk55PJresrf7dAbY3VrJUqXo0C43lXJdWyDKakz3y6mEtlkdGfue1XTf3jMLd9taiDH4cgDUN.kH9XtfHq9L2FeBwEGdyHkr1FGbrf4qpWhV0AjbNpXNMwk2pwvQO7VVCNpCg8DNaf+XYnbXesxpDGzvc14fn5tDiaGnY7e+Gxz3FMxmwCKNmfsa7KE21Sr58T4ZlkAsGJ+xpvWNIdWDyE0M3R4qVNs85EVHlCTMV4rxL+QNfkUNKtSavdiYvyeUeW2ZOVmAdHQ5agTBtnIfcrSccexqziFPDC0qktTtZx7B2aX0hHbOJa7tPF3EVoeYi2nK5sh0i61EZgKArKYsyOc4eqt5P4qBgxWX0Vvwn9DZu3sjj3IYCpYvUu6m6qduEG6wPcZS9MMwdaisF.zEO8n+YCkq1rOa.Mkuh.9AXeLR.Yer9jGbfZeiw05cORUqbHG5IBXB8I1mhAZWnGiM4rfftP3nrUf9TsFv6I4pjQN.eBlGjdrmMnOj5oTnKO45Q4ased.VlpIt6gDbxo5Rq7RsCQpz82X4rwZo+bx9ve08ake86apdNTk5EWEmhqxcJtJaTbUtawU4dEWk6WHUBKz1C4m4uRzmku1SA0gMnwdZRtEomlokinupdTwmBqZ+LT+m62X5i26cVLev8B9YvJEiw1DY14wzSfMqfQBeYy13tnAdhQipCx8XTl+QLJwM8NCvJ8d8vbcnmY7roP.aLkLxMab.1CiBz1Z6qa7T3ToHd5M7JDUTO+TwzRWeoUHbska1a+oQ6BK9+91ElF0E28pM3ct3e444ksTa0aKaG4eJnd.af.ZyH9U8VP+.sgdfbw5cErfrSivmqEez91XZG0C+E7IZx5wsPHmrd7jFtwlBhsnuqNNq4hXp7MGptf8flS7zKoCfNsjPBdglQfJo1W9RnkjLGLVazI3vcXBwyDamZOhaKFPlv5H4lNVOn.8dpc30OkZ9bJr07lOm2747lOm2747lOm2747lOm2747lOm0Me9wHn6ib4rW4F9COIC8qpFAP.U8ek3RV6Ie1td7u0jLY0Gdu2qbckqptMjtxVCmBqwcJrFaTXMtag03dEVi6WXM9tongrIiMGHX8C2i0v3uoArm2C
                
                Content.makeFrontInterface(500, 300);
                
                const var Sampler = Content.getComponent("Sampler");
                const var Sampler2 = Content.getComponent("Sampler2");
                const var Gain = Content.getComponent("Gain");
                const var Pan = Content.getComponent("Pan");
                const var SamplerGain = Content.getComponent("SamplerGain");
                const var SamplerPan = Content.getComponent("SamplerPan");
                const var Sampler2Gain = Content.getComponent("Sampler2Gain");
                const var Sampler2Pan = Content.getComponent("Sampler2Pan");
                
                //create arrays
                
                const var allbuttons = [
                                        Content.getComponent("Sampler"),
                                        Content.getComponent("Sampler2"),
                                        Content.getComponent("Gain"),
                                        Content.getComponent("Pan")
                                        ];
                
                const var SamplerSelectButtonArray =      [
                                                        Content.getComponent("Sampler"),
                                                        Content.getComponent("Sampler2")
                                                    ];
                                               
                const var ControlSelectButtonArray = [
                                                        Content.getComponent("Gain"),
                                                        Content.getComponent("Pan")
                                                    ];
                                               
                const var Samp1GainSliderArray =         [
                                                        Content.getComponent("SamplerGain")
                                                    ];
                                                    
                const var Samp2GainSliderArray =         [
                                                        Content.getComponent("Sampler2Gain")
                                                    ];
                                                    
                const var Samp1PanSliderArray =         [
                                                        Content.getComponent("SamplerPan")
                                                    ];
                                                    
                const var Samp2PanSliderArray =         [
                                                        Content.getComponent("Sampler2Pan")
                                                    ];
                                                    
                const var empty = []
                                                    
                                                    
                // Gain page index
                inline function showPageGain(pageIndex)
                {
                    for(k in Samp1GainSliderArray) 
                    {
                        k.showControl(pageIndex == 0);
                    }
                    
                    for(k in Samp2GainSliderArray) 
                    {
                    
                        k.showControl(pageIndex == 1);
                    }
                    
                
                }
                
                // Pan page index
                inline function showPagePan(pageIndex)
                {
                    for(k in Samp1PanSliderArray) 
                    {
                        k.showControl(pageIndex == 0);
                    }
                    
                    for(k in Samp2PanSliderArray) 
                    {
                    
                        k.showControl(pageIndex == 1);
                    }
                    
                
                }
                                           
                inline function buttonCallback(component, value)
                {
                    if(value)
                    {
                        //set variable x 
                        var x = SamplerSelectButtonArray.indexOf(component);
                Console.print(x);
                        
                    }
                }
                for(a in allbuttons)
                    a.setControlCallback(buttonCallback);
                
                    
                
                inline function onGainControl(component, value)
                {
                	if(value)
                    {
                        showPageGain(x);}
                    else if(1-value)
                      {  showPageGain(2);
                    }
                };
                
                Content.getComponent("Gain").setControlCallback(onGainControl);
                
                
                inline function onPanControl(component, value)
                {
                		if(value)
                    {
                        showPagePan(x);}
                    else if(1-value)
                      {  showPagePan(2);
                    }
                };
                
                Content.getComponent("Pan").setControlCallback(onPanControl);
                
                
                
                

                Dan Korneff - Producer / Mixer / Audio Nerd

                1 Reply Last reply Reply Quote 0
                • Dan KorneffD
                  Dan Korneff @Christoph Hart
                  last edited by

                  @christoph-hart The build is May3 2018. I'll update to the latest today.

                  Dan Korneff - Producer / Mixer / Audio Nerd

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

                    @dustbro The latest is in the develop branch but there might be bugs.

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

                    Dan KorneffD 1 Reply Last reply Reply Quote 1
                    • Dan KorneffD
                      Dan Korneff
                      last edited by

                      Finally figured it out!

                      Content.makeFrontInterface(500, 300);
                      
                      const var Sampler = Content.getComponent("Sampler");
                      const var Sampler2 = Content.getComponent("Sampler2");
                      const var Gain = Content.getComponent("Gain");
                      const var Pan = Content.getComponent("Pan");
                      const var SamplerGain = Content.getComponent("SamplerGain");
                      const var SamplerPan = Content.getComponent("SamplerPan");
                      const var Sampler2Gain = Content.getComponent("Sampler2Gain");
                      const var Sampler2Pan = Content.getComponent("Sampler2Pan");
                      
                      //create arrays
                      
                      
                      
                      const var SamplerSelectButtonArray =      [
                                                              Content.getComponent("Sampler"),
                                                              Content.getComponent("Sampler2")
                                                          ];
                                                     
                      const var ControlSelectButtonArray = [
                                                              Content.getComponent("Gain"),
                                                              Content.getComponent("Pan")
                                                          ];
                                                     
                      const var Samp1GainSliderArray =         [
                                                              Content.getComponent("SamplerGain")
                                                          ];
                                                          
                      const var Samp2GainSliderArray =         [
                                                              Content.getComponent("Sampler2Gain")
                                                          ];
                                                          
                      const var Samp1PanSliderArray =         [
                                                              Content.getComponent("SamplerPan")
                                                          ];
                                                          
                      const var Samp2PanSliderArray =         [
                                                              Content.getComponent("Sampler2Pan")
                                                          ];
                                                          
                      const var empty = []
                                                          
                                                          
                      // Gain page index
                      inline function showPageGain(pageIndex)
                      {
                          for(k in Samp1GainSliderArray) 
                          {
                              k.showControl(pageIndex == 0);
                          }
                          
                          for(k in Samp2GainSliderArray) 
                          {
                          
                              k.showControl(pageIndex == 1);
                          }
                          
                          
                          
                      
                      }
                      
                      // Pan page index
                      inline function showPagePan(pageIndex)
                      {
                          for(k in Samp1PanSliderArray) 
                          {
                              k.showControl(pageIndex == 0);
                          }
                          
                          for(k in Samp2PanSliderArray) 
                          {
                          
                              k.showControl(pageIndex == 1);
                          }
                          
                      
                      }
                      
                      
                      
                      inline function ControlsCallback(component, value)
                      {
                          if(value)
                          {
                      
                      //set variable y 
                      var y = ControlSelectButtonArray.indexOf(component);
                      
                              if (y == 0)
                                 { showPageGain(x);}
                                 else (showPageGain(3));
                                 
                                 if (y == 1)
                              {
                                  showPagePan(x);
                              }
                              else (showPagePan(3));
                          }
                      }
                      for(a in ControlSelectButtonArray)
                          a.setControlCallback(ControlsCallback);
                          
                          
                                                 
                      inline function SamplerCallback(component, value)
                      {
                          if(value)
                          {
                                      //set variable x 
                      var x = SamplerSelectButtonArray.indexOf(component);
                      
                              
                      
                            if (y == 0)
                              {
                                  
                                  showPageGain(x);
                              }
                              else (showPageGain(3));
                              
                          if (y == 1)
                              {
                                  showPagePan(x);
                              }
                              
                              else (showPagePan(3));
                          }
                      }
                      for(a in SamplerSelectButtonArray)
                          a.setControlCallback(SamplerCallback);

                      Dan Korneff - Producer / Mixer / Audio Nerd

                      1 Reply Last reply Reply Quote 1
                      • Dan KorneffD
                        Dan Korneff @d.healey
                        last edited by

                        @d-healey Overall functionality of the newest version is quite more stable than what I was using. Keeping my eyes open for bugs as you suggested.

                        Dan Korneff - Producer / Mixer / Audio Nerd

                        1 Reply Last reply Reply Quote 1
                        • Christoph HartC
                          Christoph Hart
                          last edited by

                          Good to know ;)

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

                          22

                          Online

                          1.7k

                          Users

                          11.8k

                          Topics

                          102.3k

                          Posts