Forum

    • Register
    • Login
    • Search
    • Categories

    Complete crash of Hise with this script

    General Questions
    3
    31
    271
    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.
    • MikeB
      MikeB last edited by

      What is wrong here -
      There are 12 folders Kit1 - Kit12 in the AudioFiles folder
      Each kit contains 10 samples in the array "inst" here
      As soon as I call Kit 11 HISE crashes completely - without error message.

      Content.makeFrontInterface(1200, 500);
      
      // Load Audiofiles into pool ----------------------------------------------------------------------------------------------
      Engine.loadAudioFilesIntoPool();
      //--------------------------------------------------------------------------------------------------------
      
      // const vars---AudioLoopPlayer1---------------------------------------------------------------------------------
      const var AudioLoopPlayer1 = Synth.getChildSynth("Audio Loop Player1");
      
      //--------------------------------------------------------------------------------------------------------
      
      // Array Samples in AudioFiles-Folder----------------------------------------------------------------------
      const var inst = ["sample01.wav","sample02.wav","sample03.wav","sample04.wav","sample05.wav","sample06.wav","sample07.wav", "sample08.wav", "sample09.wav", "sample10.wav"];
      //--------------------------------------------------------------------------------------------------------
      
      
      //Selector-ComboBox 12 Kits---------------------------------------------------------------------------------
      const var KitSelector1 = Content.getComponent("KitSelector1");
      inline function onKitSelector1Control(component, value)
      {    
          for (i = 1; i < 13; i++) {
              Content.getComponent("knbSampleSelector1_Kit"+i).showControl(i == value);
              Synth.getAudioSampleProcessor("Audio Loop Player1").setFile("{PROJECT_FOLDER}kit"+value+"/"+inst[value]);
              Console.print("{PROJECT_FOLDER}kit"+value+"/"+inst[value]);
          }       
          Console.print(value);    
      }
      Content.getComponent("KitSelector1").setControlCallback(onKitSelector1Control);
      //-----------------------------------------------------------------------------------------------
      
      const var kit = KitSelector1.getValue();
      Console.print(kit);
      
      
      //************************************ KOBS 1-12 *******************************************************************************
      
      //knbSampleSelector1_Kit1 - Sample selection---------------------------------------------------------------------------------
      const var knbSampleSelector1_Kit1 = Content.getComponent("knbSampleSelector1_Kit1");
      inline function onknbSampleSelector1_Kit1Control(component, value)
      {    
          Synth.getAudioSampleProcessor("Audio Loop Player1").setFile("{PROJECT_FOLDER}kit"+kit+"/"+inst[value]);
          Console.print("{PROJECT_FOLDER}kit"+kit+"/"+inst[value]);   
      };
      Content.getComponent("knbSampleSelector1_Kit1").setControlCallback(onknbSampleSelector1_Kit1Control);
      //--------------------------------------------------------------------------------------------------------
      

      "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
      • d.healey
        d.healey last edited by

        Could be because combo box values start at 1 and array indexes start at 0 so you're trying to access array elements that don't exist.

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

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

          here is the snippet but beware is buggy

          and it doesn't matter if 0 -12 or 1-13

          please be so kind and look over it - it must be something really stupid

          HiseSnippet 2591.3oc6b07baabEGPRvwl0xiSh6LIc5ALpcZkisHA32ZbcMEIEkXzGjQTR1toYz.Athbs.1EB.TRzd7L4OgbM2xL8ejbuyzo2x01a8n+OHc2E.j.TfpDRVxLkBG.4906812626s.X+ntIVEXYgM43uy1cM.b72UnQWjc6RsUfHtpk43EEVdkZhMTzMz.hM.Z.UaronbRw0f1VhRI4J10PwxBzjime5Unsh+Nyvwtd2yJpnofTA8yhiaWLTErNTGZ2O25EVCpoUQoIXantuZmtPUULpDVC2gHgSKHwYnndnRKvlJzpMk.G+sVtIjHPMrUrAVb7yTD2rai13SPN0eWnEbeM.MgLWCBgbxtBVqIUho4xUpMTqYcOMgEGGuP895koczKOPXCXSXu76qetOq.w9svu9fepyS7j8KdRit3MkOw6i7LaLwSSoKvjIV2SXipkqJ5jib.gpTGSS.xtA3nNf.Fm28L2h11jnl8m+5XrwxHEhn1zusjR88IUsgAveAu6Y7SGreO8v629MKmsuxQ6VUfZ.Z+l2KAo1z9Hw9WVwVgi+eHHmQJNZ6rqkuTk5w2txRwW09qd4pEM0iebx76ryNkJtCZsjuBBiWJ05lmt8y2ZoCA1p4Wxb+01MtwolYRVZkSfGkt5q1Haw8W8nzYLI2OUdoW1pVsS5twqeQkxZFlajq0QcL1UK9gU1bm7RRRux5jR6pWEqX1TA9b6EeQF8uBtJp3laUSM9id9IsWEUKdQT8VFqbzRG+RzJuHaqcyTpwWV83WlRa8caUMSboiqmbUzwPsidwNGrYINZWzAg+WDRrKVqiNvJwFcrfGVQg580MwNV.SqD5zrNvMqF01YyxMRPs5IJa1Q2h5FKlQRJQQM.v30T+08Rs+dxx4iqCo.ApuVCXKjhcGSBuD1ridQEhRuuAtvlXcHobV7A2Luegx.TXYSwHD6soseDhCvI.1fyG5cFGz6GKzP0DZX2uDp48WITEYCLIcPP.7qSc4lZk4EJgI0.YGWW4PPESRhdsXd4jRROl1+e3SlM1rwRjPbcrRSwk5zDhOfBnDgHarnAFqItvU50rwVF0Bh.w0HB.i+L.MQTw0Ibedp.lHwBWSWtJCRbUKawiI1aRdLghZpbCWbEvzd7SbPlI9TQ1PNwaArY9+rTyOGqdhzJ5EEaNOS40rtZISSkttCARgMh8MhKvBUa99WKAo+4ohe8bVL1JIG+Dkim6wdISFLYpfISGLYlfIyFLYNmjhdoyOP5EClVVhk9at1AsT9487GKTBquOtH9TuGD4JEwRXfGionUufNT7JV2.iHIleN+UhATgHMhSu3AcPp1PLRDi7WEJQLIN+pdT3wDVo0A7vYi8FQx0rwn2Of7nVyCI7T9IhPw+Do2R98QO5ghuwob5U3hygn8c.r833dD1O2ifOLtEYbXO1Sn8ScY7S5Sxd9iLftCc5EaNbOy3V.apGw7y8l5aU6KWtz16Uo15kWdq2dHksLV7n4RPD.hV8qYI+F+rjHPVXMPbCSHU7iNQdqKgbREjbtcPmhe6rwFEKHsC4pkJonoQeLm4C0DdsD9lB+6CHIZCBlvurP6J6R6krQSB16I01IvIUN+hQ3RbsZEaHJu.w25Kd+d4HCgiMkEWv60LrX4SbZtRcqGlX7zH4RMLm8gT6Qyu+8uCH41v7bFEWuPati6zSFl+zP0Wg6Zc9JrODOjT3RTxwCbZxHhSSFIbZxIdbZxngSSN1gSSMdfSSEQbZpHgSSMwiSSEMbZpOX3zgiTSOdfTSGQjZ5HgTSOwiTSGMjZ5wtHpYFOvoYhHNMSjvoYl3woYhFNMyXGNM63ANMaDwoYiDNM6DONMazvoYGCG4O23ARMWDQp4hDRM2DORMWzPp4F6hnle7.mlOh3z7QBmlehGmlOZ3z7igQTWb7.otXDQpKFIj5hS7H0EiFRcwwtHpxRiIeteon989kh1G7W5lu3uTD+j+Rien0wkImJxyNUDmdpaleJ4nNAUieyPk7XxTTIG04nRNZSRk7MyRkbDmlJ4ObySkOy4lXaPMz7OL1ahcmXuMl3fEcvAgVlqnqALCsX55Yz77Z37nN56CL8vHdUjielfqVUgQa0pp5Xm7UQLpJBZWy.fF1Z2ky03xwwOqqTQppMaUPde2UAo2ZahitJMumf+k4AGSx6uZJ+CE3FjJ2ykJMzfMAlLZ74BCALDfb+qW+fO+RQtjAkte5u8fKE4RMXm0U6cAIW5.j6GV4eG6RIcYFT59sWJxkcPxcqKE4x89U2kOnt66+9KmkcwAkt28rQgb+lgAikBPuBw9oOsvkhdxWLs2PoWxPn2NUYKccNdd2HBjnDF.SaHM.DeYvwPUfyhi9NBkAVGZiMHwo5Md.G+sG8fFm1iyeasBc6k3GsJnqPJSf+tjTPafNg0qSapnbL58jr6oX2SytmgcOK6dN187r6KxtKK47iSqIc6SfMsa2mesJzF.a012BD+OSMT85R2xoKMq2pAWAAzX8mesfgFJnl0JP2pjutE2JEb4q.eGdNNOdJv+2IExeWeL7dWfPlm52L5iq+9B5A26KLca+RIi8zvlvEK+YNfBxbPEz2tRAKUEMfy59ueK+OOyPgtQM70WBWGcr2PW7SSW1maCN0lBRnIsAFMfultv+EjiS26EWF8RxazKCYPrazKgOZ7jfdY1KviU7KK8xUJHI6MNOC4o6tQuD9iodidI7m2dxVubNu3vMJlg7FP2nXFxqxMInX9nfuH15J669hX2Vf8e+vie709d2qB+0B1DVvw+GEbDBQ61.QmMNHayrY2FZw19RKP2eQRb8dSsoC7lZobdk6QVf7aV9A+Bz2Y5JPeleAxU.DWn+6nFpDb1cp78E1.2riFcuO6+H.fdtG3V.DiBrako6HYjEztaf8G+Uw4BvnJterPcnsZ6vk2oBQdoG4.Wwxq6orvrBKevADqTegcFgJu3p+HUvun7odhRuMpr6QpvCDN6LEbNm9E+yQ8zuvXjO8KZzEoRLaA9xYLaI6.a.hZc1sd+YNyF1Bisoejc+m9FtgMnadeB4CTavw.SqfTn+wSvuSHjo2HSB+aTXNVTQAdZCc+ZSbeGOmV+CK.mxz7Nn.bRN3AHwLi1mj++wAmwLi0mqGWegaldzD2Pzf70OyIFy8EZ.o16kQGCzHNKLY7SDJCNPoilsWtA8T1.ivFswHnZPvFY.xVs.l9k8P6PKYaG3DJ4AE1hDcWwB3ev00gHfh4f9KQPWHO55hyyd8YBNhqH08V7+OFlX5IygI1B2wlDlcCEBP8TmiLkFjnyp.hjfP.M5jGxOE8YWbRK4EOqA.0jk3mIWtEJSSy6VnrWgWK7PWQ0DumpybZPwx2lkCoeiXA1uivFzzh8lIDAAIxyHpShHtmpJUcufLGW3sI4EnMot.sI8EnMYt.sI6EnM4t.sI+41F5fQK0wFq63JRxn9xNG9Q78FjmeZt+KTg6yxI
          

          "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
          • d.healey
            d.healey last edited by

            inst[value]

            This won't work because value will start at 1 but the array will start at 0. You need to use value-1.

            Also you should declare component and module references at initialisation rather than run time.

            Thing like this should be called once during on init and stored in a const, then you can use the const inside your control callbacks (and anywhere else you need to access these references) rather than reassigning them every time the callback is triggered.

            Content.getComponent("knbSampleSelector1_Kit"+i);
            Synth.getAudioSampleProcessor("Audio Loop Player1");
            

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

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

              Sorry David - too high - I am not yet ready to understand your short precise instruction
              Do you have an example - or can you please comment it in my snippet so I can see where it says what you are talking about?
              I would be very grateful.

              "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

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

                @MikeB When you select item number 1 in the combo box the value in the callback will be 1 but the first element of the array has an index of 0. That means when you select the last item in the combo box the value will be higher than the last index of the array and you'll get an error or a crash. So everywhere you are using a combo box value to access an array element you need to use value-1.

                With regards to the other stuff I said you can see in all of my videos I never use things like

                Content.getComponent() inside a control callback, I always declare these references as consts in on init, like:

                const knbKit1 = Content.getComponent("knbKit1);And then whenever I want to access it I use knbKit1`. There's more of this kind of thing in the coding standards guide - https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-in-hise/hise-script-coding-standards.md

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

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

                  @d-healey said in Complete crash of Hise with this script:

                  @MikeB When you select item number 1 in the combo box the value in the callback will be 1 but the first element of the array has an index of 0. That means when you select the last item in the combo box the value will be higher than the last index of the array and you'll get an error or a crash. So everywhere you are using a combo box value to access an array element you need to use value-1.

                  I did that in the first try - but 1 minus 1 = 0 and Kit 0 does not exist.
                  How do I get a combobox with value 1 to x together with an array [value 0 to x]?
                  I have seen this in a video of yours - but in which one?
                  By the way, this is often the problem - that with the number of your videos
                  you don't know where this or that was shown.

                  With regards to the other stuff I said you can see in all of my videos I never use things like

                  Content.getComponent() inside a control callback, I always declare these references as consts in on init, like:

                  const knbKit1 = Content.getComponent("knbKit1);And then whenever I want to access it I use knbKit1`. There's more of this kind of thing in the coding standards guide - https://github.com/christophhart/hise_documentation/blob/master/scripting/scripting-in-hise/hise-script-coding-standards.md

                  The other I have as well as understood - I think - for now 🙂

                  "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

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

                    @MikeB said in Complete crash of Hise with this script:

                    I did that in the first try - but 1 minus 1 = 0 and Kit 0 does not exist.

                    inst[0] does exist. As I said you need to use value-1 when you want to use that value to access array elements. You don't need to do it everywhere.

                    By the way, this is often the problem - that with the number of your videos

                    If you have a solution please let me know 🙂

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

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

                      @MikeB said in Complete crash of Hise with this script:

                      inst[value]

                      First stupid error found "inst[value]"
                      Is of course "doppelt gemoppelt" as we say in Germany
                      Means "inst" is already a value - so here a value of a value - stupid 🙂

                      to the second part: Content.getComponent()
                      Here I have the problem that I have the knobs 1 -12 and I read the number 1-12 from a key (as learned from you) But because there is no knbKit1 and that creates an error

                      knbSampleSelector1_Kit+i.showControl(i == value);

                      Interface:! KitSelector.js (25): Unknown function 'showControl' {SW50ZXJmYWNlfEtpdFNlbGVjdG9yLmpzfDE0NTZ8MjV8NDU=}

                      "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
                      • MikeB
                        MikeB last edited by

                        Now I have to stop for today
                        it is completely the worm in it
                        I can't get any further

                        "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
                        • d.healey
                          d.healey last edited by

                          @MikeB said in Complete crash of Hise with this script:

                          knbSampleSelector1_Kit+i.showControl(i == value);

                          You need to store all of your knbSampleSelector knobs in an array (you can do this using a loop or use the built in or use the right click method in the widget list to grab a component reference). You'll see me do this in lots of videos.

                          Then you're code would look something like this:
                          knbSampleSelector[i].showControl(i == value);

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

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

                            Maybe someone can help me here
                            David has tried - but unfortunately I can't follow his explanations yet.
                            And the more he writes the more confusing it gets for me - sorry David

                            I want the ComboBox to select a kit 1-12 - (this works so far).
                            each kit has a knob that selects the corresponding samples (sample 1-10)
                            The selected sample from the selected kit is loaded into the AudioLoopPlayer.
                            Actually quite simple if you know it 🙂

                            I am a visual person - I need to see this to understand it.

                            HiseSnippet 2225.3oc6Z0sTajbEdFfw1nX4hcWmpxlpRUSQRkBJL5OPfb4305ODnEDRlAgw6VaQMZTKo1LS2CyzRfvkqZeAx6PdDxiPdBRk6xsatKW52fjt6YFod.YhVggJqM5hFN8OmyWeNm9zcOmtlC1.35hcjjmc+91.I4Gpn0GQ5TniNDIUtnj7eTYiMqppoaYaBT0.l.CB1QMYJ0sgDW0k01EZaCHR46aq65BZJIKO8lrwJO6LR7eu+E40M0QFfgUIIc.FZ.1AZAICqsV1sgllkzaB1GZIz6UyV1.iJfMwco3bZkDR15FGq2FrqNqaSoHIeuMZBovRinS.tRxyjG2ruVG7oHu9e.zE1vDvHRJoQYjW0kvlMYHlUqTgNPyl0BzGtRRxJ0Fpcl1S67XkJvlvA0OTKMGuA0giPTeHO0UAujhvKw3CuoDf28CLdb3Yp2G3vg0iTpTtXYUuZRFBTE553.PDMvIcAgLNu+E9MsuCUMKV+NXr8FHcJTaJZKYbuAsqZ1.wFd+KjmN77d5O77Vzrb44pDaZUBZBXya4.BZuYyQp8unNQWR9uqjLchXn8Wa6LEJUK19kxEaKxKe8V4crh0KUl50qWHecz1odCDFqvJ63b19uZubGCHFYx4zX6ChYelS5TE17T3IqV9MUVKeisNY0zNzxyRl60sqV8z9UN+vREMscprd6S5ZefYriKsa8LIRj3MtmV3.qxXcml5vWQd5gosdIbKT9c2qpQrkd0oc1BUMVdTs11adRtduFs4gq09fzEz91x8d8Jl6bP6xoiknWsTag5AMO4v5s1sfDaJ54g+cJwO.a10B3FuRWW3wkzYqA6GutKvwMtEqpV9UoUs9tE0hyr5wK5z0xksXVMchDwyaB.1myV0dzJMNJYxLwrfLGA1ZMMXajNoqCUVJ610JuNUoOz.mcWrEj1NOJgekyksH.MppY9HT6sCQzCwywIjugjf26LddueghlgCzlLrEl48WoTFQ.NzIHHj+qWekl5OeekBXZOPjXV5GCJ4PIFLhEnFmmvl9K9rnQhFIdb0cv5MUy0sID2h4OoBQDrpMFapt7M5unQ1.0Fh.wLo.fKet+LEo3ZTou.Cfwiu7szOekAMrpKQsG0bSqiCJlkxOZwMfPGHO0KJL0mqx22IVa.gu7mSsv779ox5XPPr4CLk2x5pbNN5882Gj41nNzHtLORsyGesDj8OOW86m2kK1DIicpdu4eR.YpvjqDlb0vjoCStVXx08HUCnybA5mFlNYBN8Obq6zxjWvgPVt.1pANO9rfSibi5wREPffYdqAwbX9qXKaLhRrv7hch6nBQlzE8ps5hLHPLREiD6BiINzE+FAb3ITQY1ErXzHuUk9KZDVYK54sV.RkYxmoBU+SzYK8uKszhpu0qc1uQCmiQM7bXGHwinhe9kfKFyktMbf3o7949B9YCY4f0ibGcO9LHz7nWYFyEPXqHVX92Vaupe6FE1+nRU2o3F68tiYhkKhklONE.Ts52yI+AQQRAjK1DDy1Axf+Oel7NeF4QEOdXF5OE85v6hFYbrgrojudpftoI6bNKLRi3sR.buk.QiH3OsKl.phVXwHuMxrQdWD0K1TqVirMeTaBbFYyrSE3bUCbATWqF.m.G1fNR2LO7Y9TFuy7Y3YJD5HFUFAIUsAnOzIfk7sezyDF0GUztR3mkXN+yRDDhPhcVmGoHZ2j3HW7bNRWjKOxmKZlPZ7cNO9ZkQunJL69oye7WesXWpKhtGbsX2JWZxJccX2pgX2eYy+UjqE5ReQzQOd30fcqcQ1cuqE5V+iqtKyEY2bWKz8zIyQ429gbiSDheYi7O+pqG+RNYZuOH+RMB9UuL+BfzaE3GQfFkvF3Pfr.PxEA8fF.uqXLqRQf6wDrMMN0fP9RxOX7CZb1.I+i8y1eHQ8rV5z1TjeHkBR.VTQWgMT0jQXko3kqvKWkWllWtFubcdYFd4S4kIS38GuQmLUDoSgMIcFHv+V6rc.v1cDtm02vrTClS2yaNEM3RU5HfIeB8qUrMQgUsthyqDmKLu9q8x5KWEYYYIo.YpHe.sU4GJHvnSPLyyDsiCkpzeHqU3OgDW4NrU5lOZDpTbEqLrBJK9RJnxYcMzMAdWedX0+6WXqy9dGBykQqibI.aM34gBT0KX+L4oE09ObBh3+Kekgz0xcXkOccGhNAawdmxP3.B2oLDNdycJCgCm8KKkgvD+ie.zL24YHdv3OCUFWww5+LbcxUboj6zFhWo5SVsw8CeIncza3eInGnv++P2mKmv8dx9xrDvYTN76T32FrA9LUWNDT42Ga4joTW9ajFb2nGF5tQY8tk6XCCQKvOVV.F054CiTJaivM7jqON7SIOspDpsbvVpdYgP8XpIk1sgXqbHrYv46kR91bJUvM6ZxRmmXVsYox2uAHFEJAbrjrgbgj9gR46MQptGW39EJ0fDiNiFuSMB7xxh9MLd8e3.QU1nUKpUaHXmQozg27uR.Qn7UAPYPx27ek.OV4xeL+q3Ac7OF2Gzg8X+fNz5iLnlsPqi41R9aP.hZe4rIeomgvdXLg8EuEePI9wNX4ilx9P8FzC33FlCCy39uWYD4dHUbwDsIwCMpHyFn+m94mdljj4v7e60lYPtu8Hu3ahXlw66i++3sfLy+W+TUt8B2L83A2QnAkqcomB0bJZPl8dCTOfIcwBGieoRQPK8tljfZCuRoBFgs6fQPivNazcIa2F3Hh8QNgxQHgdzMON6dzn85t.wcX2Ah.5NWb8xOCcQxwWWbU1qeihGbUYKuU+zXaho+7bah8vcIzvrUzoNpm48JfznQmM.TjfP.SVl7jmhcpFO5DAwyz.nlbh+C8meiI4esX+FSFz3shLrzMbvGY3kfAlu7C30Pm2Hdf8YUpvnUGjVBEkDwRPik2DdjgAScubRIoQOlTSvXVYBFypSvXROAiYsIXLqOAiIyUNF1lQ45RvVdKEoUTaCu2ym7fM4oW+8+tXSd6C
                            

                            "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

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

                              @MikeB said in Complete crash of Hise with this script:

                              HiseSnippet 2225.3oc6Z0sTajbEdFfw1nX4hcWmpxlpRUSQRkBJL5OPfb4305ODnEDRlAgw6VaQMZTKo1LS2CyzRfvkqZeAx6PdDxiPdBRk6xsatKW52fjt6YFod.YhVggJqM5hFN8OmyWeNm9zcOmtlC1.35hcjjmc+91.I4Gpn0GQ5TniNDIUtnj7eTYiMqppoaYaBT0.l.CB1QMYJ0sgDW0k01EZaCHR46aq65BZJIKO8lrwJO6LR7eu+E40M0QFfgUIIc.FZ.1AZAICqsV1sgllkzaB1GZIz6UyV1.iJfMwco3bZkDR15FGq2FrqNqaSoHIeuMZBovRinS.tRxyjG2ruVG7oHu9e.zE1vDvHRJoQYjW0kvlMYHlUqTgNPyl0BzGtRRxJ0Fpcl1S67XkJvlvA0OTKMGuA0giPTeHO0UAujhvKw3CuoDf28CLdb3Yp2G3vg0iTpTtXYUuZRFBTE553.PDMvIcAgLNu+E9MsuCUMKV+NXr8FHcJTaJZKYbuAsqZ1.wFd+KjmN77d5O77Vzrb44pDaZUBZBXya4.BZuYyQp8unNQWR9uqjLchXn8Wa6LEJUK19kxEaKxKe8V4crh0KUl50qWHecz1odCDFqvJ63b19uZubGCHFYx4zX6ChYelS5TE17T3IqV9MUVKeisNY0zNzxyRl60sqV8z9UN+vREMscprd6S5ZefYriKsa8LIRj3MtmV3.qxXcml5vWQd5gosdIbKT9c2qpQrkd0oc1BUMVdTs11adRtduFs4gq09fzEz91x8d8Jl6bP6xoiknWsTag5AMO4v5s1sfDaJ54g+cJwO.a10B3FuRWW3wkzYqA6GutKvwMtEqpV9UoUs9tE0hyr5wK5z0xksXVMchDwyaB.1myV0dzJMNJYxLwrfLGA1ZMMXajNoqCUVJ610JuNUoOz.mcWrEj1NOJgekyksH.MppY9HT6sCQzCwywIjugjf26LddueghlgCzlLrEl48WoTFQ.NzIHHj+qWekl5OeekBXZOPjXV5GCJ4PIFLhEnFmmvl9K9rnQhFIdb0cv5MUy0sID2h4OoBQDrpMFapt7M5unQ1.0Fh.wLo.fKet+LEo3ZTou.Cfwiu7szOekAMrpKQsG0bSqiCJlkxOZwMfPGHO0KJL0mqx22IVa.gu7mSsv779ox5XPPr4CLk2x5pbNN5882Gj41nNzHtLORsyGesDj8OOW86m2kK1DIicpdu4eR.YpvjqDlb0vjoCStVXx08HUCnybA5mFlNYBN8Obq6zxjWvgPVt.1pANO9rfSibi5wREPffYdqAwbX9qXKaLhRrv7hch6nBQlzE8ps5hLHPLREiD6BiINzE+FAb3ITQY1ErXzHuUk9KZDVYK54sV.RkYxmoBU+SzYK8uKszhpu0qc1uQCmiQM7bXGHwinhe9kfKFyktMbf3o7949B9YCY4f0ibGcO9LHz7nWYFyEPXqHVX92Vaupe6FE1+nRU2o3F68tiYhkKhklONE.Ts52yI+AQQRAjK1DDy1Axf+Oel7NeF4QEOdXF5OE85v6hFYbrgrojudpftoI6bNKLRi3sR.buk.QiH3OsKl.phVXwHuMxrQdWD0K1TqVirMeTaBbFYyrSE3bUCbATWqF.m.G1fNR2LO7Y9TFuy7Y3YJD5HFUFAIUsAnOzIfk7sezyDF0GUztR3mkXN+yRDDhPhcVmGoHZ2j3HW7bNRWjKOxmKZlPZ7cNO9ZkQunJL69oye7WesXWpKhtGbsX2JWZxJccX2pgX2eYy+UjqE5ReQzQOd30fcqcQ1cuqE5V+iqtKyEY2bWKz8zIyQ429gbiSDheYi7O+pqG+RNYZuOH+RMB9UuL+BfzaE3GQfFkvF3Pfr.PxEA8fF.uqXLqRQf6wDrMMN0fP9RxOX7CZb1.I+i8y1eHQ8rV5z1TjeHkBR.VTQWgMT0jQXko3kqvKWkWllWtFubcdYFd4S4kIS38GuQmLUDoSgMIcFHv+V6rc.v1cDtm02vrTClS2yaNEM3RU5HfIeB8qUrMQgUsthyqDmKLu9q8x5KWEYYYIo.YpHe.sU4GJHvnSPLyyDsiCkpzeHqU3OgDW4NrU5lOZDpTbEqLrBJK9RJnxYcMzMAdWedX0+6WXqy9dGBykQqibI.aM34gBT0KX+L4oE09ObBh3+Kekgz0xcXkOccGhNAawdmxP3.B2oLDNdycJCgCm8KKkgvD+ie.zL24YHdv3OCUFWww5+LbcxUboj6zFhWo5SVsw8CeIncza3eInGnv++P2mKmv8dx9xrDvYTN76T32FrA9LUWNDT42Ga4joTW9ajFb2nGF5tQY8tk6XCCQKvOVV.F054CiTJaivM7jqON7SIOspDpsbvVpdYgP8XpIk1sgXqbHrYv46kR91bJUvM6ZxRmmXVsYox2uAHFEJAbrjrgbgj9gR46MQptGW39EJ0fDiNiFuSMB7xxh9MLd8e3.QU1nUKpUaHXmQozg27uR.Qn7UAPYPx27ek.OV4xeL+q3Ac7OF2Gzg8X+fNz5iLnlsPqi41R9aP.hZe4rIeomgvdXLg8EuEePI9wNX4ilx9P8FzC33FlCCy39uWYD4dHUbwDsIwCMpHyFn+m94mdljj4v7e60lYPtu8Hu3ahXlw66i++3sfLy+W+TUt8B2L83A2QnAkqcomB0bJZPl8dCTOfIcwBGieoRQPK8tljfZCuRoBFgs6fQPivNazcIa2F3Hh8QNgxQHgdzMON6dzn85t.wcX2Ah.5NWb8xOCcQxwWWbU1qeihGbUYKuU+zXaho+7bah8vcIzvrUzoNpm48JfznQmM.TjfP.SVl7jmhcpFO5DAwyz.nlbh+C8meiI4esX+FSFz3shLrzMbvGY3kfAlu7C30Pm2Hdf8YUpvnUGjVBEkDwRPik2DdjgAScubRIoQOlTSvXVYBFypSvXROAiYsIXLqOAiIyUNF1lQ45RvVdKEoUTaCu2ym7fM4oW+8+tXSd6C

                              OKay, you have all your instruments loaded in to an array called inst:

                              const var inst = ["sample01.wav","sample02.wav","sample03.wav","sample04.wav","sample05.wav","sample06.wav","sample07.wav", "sample08.wav", "sample09.wav", "sample10.wav"];
                              
                              • arrays are numbered from zero so in inst[0] is : "sample01.wav". in inst[1] is "sample02.wav" etc etc.

                              you are referencing this array in your combobox....using the value returned from the combobox.

                              Comboboxes ALWAYS start at 1 and go to whatever the last entery is.. so yours will return the numbers 1 to 12

                              -- so you want to load the samples from inst (which are numbered 0 to 11) using a value you get from the combobox (which are numbered 1 to 12)

                              So in your combobox call back you need to reference the contents of inst like this:

                              inst[value -1]


                              Meanwhile:

                              inline function onKitSelector1Control(component, value)
                              {    
                                  for (i = 1; i < 12; i++) {
                                      Content.getComponent("knbSampleSelector1_Kit"+i).showControl(i == value);
                                      Synth.getAudioSampleProcessor("Audio Loop Player1").setFile("{PROJECT_FOLDER}kit"+value+"/"+inst[value]);
                                      Console.print("{PROJECT_FOLDER}kit"+value+"/"+inst[value]);
                                  }       
                                  //Console.print(value);    
                              }
                              Content.getComponent("KitSelector1").setControlCallback(onKitSelector1Control);
                              

                              -- just NO. NO.NO. never do this.....

                              every time your callback executes (everytime you use the combobox...) your program has to go initialise and find all the controls you want to access...bad very bad.

                              do this instead to pre-load your components and loop player...:

                              const var mySampleSelectors = [];
                              const var myLoopPlayer = Synth.getAudioSampleProcessor("Audio Loop Player1");
                              
                              for (idx =0;idx<12;idx++)
                              {
                                  mySampleSelectors[idx] = Content.getComponent("knbSampleSelector1_Kit"+(idx+1));
                              }
                              
                              

                              Then in your combo callback:

                              inline function onKitSelector1Control(component, value)
                              {    
                                      for (idx= 0; idx<12;idx++)
                                      {
                                            mySampleSelectors[idx].showControl(idx == (value-1));
                                      }    
                                      myLoopPlayer.setFile(inst[value -1]);
                              }
                              Content.getComponent("KitSelector1").setControlCallback(onKitSelector1Control);
                              

                              HISE Development for hire.
                              www.channelrobot.com

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

                                @Lindon
                                Super - many thanks for the help - But unfortunately this is only the half

                                1. the combobox selects one of 12 knobs - (that works fine)
                                2. this knob loads one of 10 samples into the AudioLoopPlayer (this is completely missing)

                                So the knob has to load from the folder selected with the combo box
                                the sample selected with the knob

                                There are 12 folders - Kit 1 to 12
                                Each folder has 10 samples 1-10

                                "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

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

                                  @MikeB - so see if you can work it out from the code I've given you...

                                  HISE Development for hire.
                                  www.channelrobot.com

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

                                    @Lindon Thanks a lot
                                    I've been trying to do exactly that for a week and I can't get it to work.
                                    Ok - Must try something else.

                                    "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

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

                                      @MikeB - you wont get it to work if you dont stop and get the concepts right first...

                                      HISE Development for hire.
                                      www.channelrobot.com

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

                                        So I am making progress.
                                        After watching one of David's videos again I am a bit further along
                                        However my requirement here is not so simple

                                        I fail at the moment still at the following problem
                                        I need the value of one component in another and vice versa.

                                        Bildschirmfoto 2021-06-15 um 07.34.11.png

                                        HiseSnippet 2305.3oc4Z0sTaijEVBPyFXfTL6jspY2ZunKW6ElhfsjAyOUFVL1FCd.i8fABYRkhRH21tCRcKjZavgJUkGg8p858QYeB1mi8x7Fra2sjrkrMTDCgcmAkpB9z+bNeme6Vp6JNDCnqKwQRdxC6XCkjmVoZGLsYtl5HrTw7Rx.ks1tLnptksIDTEZBMnDGfVJvtHpKPcIorcr0ccg0jjkGea9rjmbBIwym2HqtoN1.1qIIoiIHC3dHKDsWqUxrKxzrfdM3gHqPidoLEMH3bDSRKFBGWQUxV23b8Fv804CaLEI4uYqZHFfpR0oPWI4IxRp0oZSxkXuweLxEclIjSnIUkwHulKPLqwQLuUobMQl0pDXIbkjjUpzytLtmc4EJkP0Pcaum8YVQGfdyHr8PdraCdZggm5cGdiEBd+t.2l.dl5cfNBX8bkREyWD30hVDPkqkiCDSqBunELhy4ya320gNLyb312iPr2BqyfZsv9RN2OiMzp1vvc74MjGOpdO9Mq2gcKCpqRb0p.xDx0a4.B1n45Hy+mWmpKI+uTzRql.e3x6tZtBURbXgMSrC8meyNYcrRzN0pGczQ4xdDd2TuGgRjaw8bt5vWevlmCoFqtoyY6dbB6qbRmJ21WhtXohuuzxYOamKVJsC6+uRay2znb4K6T5CmTHuosSoUZbQK6iMSbdg8OZUUU026dYtisJRzcpoidMcsSRa8yncvY2+fxFIl+0W1bGb4DYwUZXu8Ea19M3sOY4FGmNW0epX62rn4dG2nX5DpsqjZGbaj4EmbT88yIwUQuH7eQI4wDyVVP2jkZ4hNufNO6qSxibgNtIs3MU2uopkOZ+7USx85Iy6zxxkmFCRqplLqIDZ+Ad95oKd1oZZqlvBwCD34ZUQMv5zVNLYoreKqr5LidOGbl8IVHV+h5C9MNal7P7vZlGiv72NzvQHdANQhMjBE8NgWz62oT0vAYS60C289sJEwTnCSAgQhe8FqzXGLoRNBaDXZBK8ygEbXDcmQbsTppujq+y8pYlZloRlDgMLaUCFOlqnVl6ot9EyNUKw6ci4ML9.A6QzqA1rUMDoNOxCfvTBvlPLAK7U8gK7svMPXXBSFDDHPD6yzJREl7iyAYxjK7H83YPDljMcbz63uJ.2f.5AtEDUqbdnDIqfuKEzV2gIE1OVG7VeGlpVhK0aG6kAjohRtXTxkhRlNJ4xQIWwiDDPuZezqEkVSUP+t+G3LRljkF2aY30A4HVmQNibE3RDKcm2oFXAsThoTjB7hwADLDzlfEKaiIm4Bzw.dNCnIxBz1qX7c1uX0gIl.H3x8PbKQ394Y8dq7v5UrehDMfTQHiWHT2D83wDsB3yHXwJ+Tw5L8KNp1Uf0UeE6O+nVJ9ele94lYpqmYJ.6IJPdKq22IrHd0DXRjYbrYpNlFO143y7Dcv30NkM4Xyykv7ZywE4G4REgMY4ef5svFTDyhQvgjgFm2Nr7Pi.F+RlFa1BxwDGQd3h+Df90ApuBzG7CFy089o2yPTnDtrUMCDqvZrNHtPlKvQcz42ieeLzuYy1kXBSX6f3VhqqbP4eZqbGdZgx6keqC934byffiyGKYr4isA+IluAY3FyvljXykvk2o.g4zMM4aHH9PMaOtUu5OwousvxCb6lNHRdD1.fJXAvZgyaH0AZp.+EM.0cHV9UCiwKPECbWRYXKs5IHtL6KYIZXY27ofDf04wOferKKXTcChBE.M.edK5KNY.LOSd9IC2FeGtCe3LMjqWDWNrLraclCMW6KK31OjVDdy8YuUvm24Gh+nEQ5mhx9WHceeBEVFGetotdpIm5iSA5uq50GZe9FGSnyP6lu0NmaahwwsrNC5DXRCFHaGYQ23txcai6FdgYgFHAWDinksg3a50Xj7iMYareFeTwFJUrgvY82PnX0srjqj3aX84JgqoHIPd3MqJ0OWdtOWpZhXaPQvi+nxvC1Ffcr8odOXWp9Y2r2Kzs3.Jqz8gcK8vhtz8ytmcuX2xOrnakGV1sZ+r6OeuX2Zils6OcSgwpil1di7Sazh7tQ9MPhwOjQ5nhh2hm8pc9UDXUIrgNTDu.jbdXajAz68DmTIOz8bJwl8t+cWNSR9Y28hFW0SxkyzoKwmHYrzY8oHOMiBQgVLQ+2Up.cLZ45xpb5x2Z8TEw0Z4RcP5lBxs3bk8VmHCAIa6qtT+eWBR8GTgSD+40DRMwONjzwiYayFtaxbPGcq.FnyT6j4XuBMqTMuAw6w6MqlHbCwOktDUi1rKx+mMxzDhZzLzac+W4t7tFmuwy3LSvqXqiglBKyePw1D22h6gMPeJWHCjz1YhJ2Oec+x8ezLi7zgD7ziPQ3qBGnER5+EO2S.YrLrkupxbD1tgGSTD92r6GgeZmLtF5lPuuhRuY9u2vVm+YuBA9gabboP6pnODYYh1AqHJOdXy92NBqY7qPsW5d4vW72PN7oGgkgeJq8oeRq8K+jV6W4Is1u5SZsesmDZ+srA8mzpu1Sa0O0u1U+AO6tYUJQp0xjeZfgOTb9MAvuC1qOE4763mQG1EQ6D4Di+ZbR42U39cJUPTilCGuiMD7xOD9ux30+dGLixV0qy7N8.6DJEN4q+kLHLT99.nHNqF9Q03eICdgxfmdyCw8Aw9NeePp1AavbaQhWE9RwUXf8NyCdXzCbKFNfPn7u0Z36ihehA+3rYrOxngsgNtQ4PuCreLEIKtJqHya2+aJXrtrjYuSG2qOyfSF2ir+aLwD2sO7ZOm3vt8DxS7+0WjkGupIie2f6PrfxUF3JRMqRUDO5XKbanIKWPfweuRdXc8VlzfVilHThfI1M4epnnwRrJ7MZ.cBi8gpPaRoQtRNuHyArh15tvvqNrGBC0c5Oc3KvVnc2sE2l+5GT7fKfm8B9swp.i+zbUfCHsnrpnkzYApW4cGgpxJ9Z.YHAigl7iHRdL9GE1iVMndVUHtlf3+vd76TiSK62oVPmOJxvR2vgbpg2WtlGK+LQKL8FKpaOoRINMn626VQQMgJqVdMzoFFby8BZRRCeNoFg4r3HLmkFg4jdDlyxivbVYDlyp25b3KFsYKJwxKUj0Pks7tsexcWCmsgz+KRgEJGA
                                        

                                        "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

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

                                          @MikeB look in the API, you will see a call for every component that looks like this

                                          youComponentReference.getValue()

                                          this will tell you the value of the referenced component, but are you sure thats what you want? Because the value of your comboboxes are 1 to 12...

                                          .. you might need:

                                          yourReferencedComboBox.getItemText();

                                          HISE Development for hire.
                                          www.channelrobot.com

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

                                            Thanks for looking at this again
                                            It doesn't matter what I put in front of ".getValue() it always returns the error "Unknown function 'getValue'!
                                            I have tried everything - nothing works

                                            I think I can't reference the sampleSelector because it doesn't exist yet.

                                            And that is already correct there are 12 kits and 10 samples per kit
                                            The ComboBox select the Kit 1-12
                                            The Knob (1-12) select the samples

                                            "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

                                            d.healey Lindon 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            16
                                            Online

                                            1.1k
                                            Users

                                            6.8k
                                            Topics

                                            62.3k
                                            Posts