Complete crash of Hise with this script
-
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
-
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");
-
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. -
@MikeB When you select item number 1 in the combo box the
value
in the callback will be1
but the first element of the array has an index of0
. That means when you select the last item in the combo box thevalue
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 usevalue-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 -
@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 be1
but the first element of the array has an index of0
. That means when you select the last item in the combo box thevalue
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 usevalue-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.mdThe other I have as well as understood - I think - for now :-)
-
@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 usevalue-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 :)
-
@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 errorknbSampleSelector1_Kit+i.showControl(i == value);
Interface:! KitSelector.js (25): Unknown function 'showControl' {SW50ZXJmYWNlfEtpdFNlbGVjdG9yLmpzfDE0NTZ8MjV8NDU=}
-
Now I have to stop for today
it is completely the worm in it
I can't get any further -
@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);
-
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 DavidI 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
-
@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);
-
@Lindon
Super - many thanks for the help - But unfortunately this is only the half- the combobox selects one of 12 knobs - (that works fine)
- 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 knobThere are 12 folders - Kit 1 to 12
Each folder has 10 samples 1-10 -
@MikeB - so see if you can work it out from the code I've given you...
-
@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. -
@MikeB - you wont get it to work if you dont stop and get the concepts right first...
-
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 simpleI fail at the moment still at the following problem
I need the value of one component in another and vice versa.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
-
@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();
-
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 worksI 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 -
@MikeB said in Complete crash of Hise with this script:
doesn't matter what I put in front of ".getValue()
It definitely matters. You're obviously putting the wrong thing :p
What have you tried?
-
@d-healey please see the snippet and the screenshot above
it is built exactly like in your "scripting efficient" video
There is a ComboBox that calls one of 12 knobs
The called knob calls one of 10 samplesand loads them into the AudioLoopPlayer
The file path is dynamic - both the kit (1-12) and the sample in it (1-10)
{PROJECT_FOLDER}kit "+value+"/"+inst[value]);