HISE Logo Forum
    • Categories
    • Register
    • Login

    Failing at HISE 101

    Scheduled Pinned Locked Moved Solved Scripting
    18 Posts 2 Posters 583 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.
    • clevername27C
      clevername27
      last edited by

      I'm missing something fundamental here.

      I globally allocated an array in my Interface Script Processor (i.e., deferred), but cannot access it in another Script Processor. However, if I globally allocate a "simpler" variable type in one Processor, I can access it.

      Here, a "simple" constant is accessible.

      I var_and_constant_succeed.png

      But the array is not. (However, the exact same statement, in the other Processor, can access it.)

      var_and_array_fail.png

      Bonus: I thought to use a reg type for the assignment, but that gave me this error:

      reg_and_constant_fail.png

      Any thoughts? Cheers.

      d.healeyD 2 Replies Last reply Reply Quote 0
      • d.healeyD
        d.healey @clevername27
        last edited by

        @clevername27 Use local, not var in the midi callbacks. Avoid global variables if you can. I'll take a proper look when I'm back at my computer.

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

        clevername27C 2 Replies Last reply Reply Quote 1
        • clevername27C
          clevername27 @d.healey
          last edited by

          @d-healey As always, thank you.

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

            Works as expected here - but you should use a midi list instead of an array for this purpose.

            HiseSnippet 5038.3oc68jsbiijbj8LZCSZuN7F934x8Sp2klhDfPhTiOV0TRsTL5ZIo5YZOQGc.ATjDcCBPC.piYh9Kx+Z9A+GXmUU39hf.PRTpkdPRn.prxqJqLyJQA7sVXMYr7mL0TlOGaUoR0u6BCcIrootQkp0Fc2bbkp+MaL7NMqo8mJpnU438qT8uciSEMsvFHVSu8t4hllX4JUq9cuizP0ZeeE5O+u+GuUTUTSB60TkJuWWQBehxLEKuVu3O+iJppGJJiGoLy2S24OerjtVecU8E.97cazpxbQouHNAelH4wd0FUp96NPVwR2XnknE1Ddl2pKe2vo52nwd92qXpbkJlbQ6JCA.wZtR+oJpxtzpIP4euOJ+6XT9+vFmpHq31tGG3uidCjWO7yCp9pzPo1q.J8Jenz2yPo+vFCkLTla4cGB97WuwwZf.YrHvp8iJrmsxq9GqtQec3IzrZNS7K3CMfKb6wla2pUCD7q27C0qOQU+JQUzjOcMVUWRw5Nz+F5W93OLdgljkhtFRW6LcK74Za9l5+V8ZdO1ubJfMffo4DrE4INawrqvFa9lOB822sdu8iuILVesNJLXGOlA2P2if6F5ppD.FysI5LFo0wM0nXSCz0hpKvtOHvTCJo9cYSRIwXk9dPcsi0TrNeN195C0UkIR.x+GUtVwVV.+2kGuunkHHpqZ2F7bywFVJDzo593qg4JLAesM1Ga9EK84vrkLpU72a2pmdZ63zNp9+rAJA4qxXzlJl6iGqngk2zSZ+l2TuVM.iM0UwMmannYsYFTEVKk4aTVx7GB4LX2QWdgpnUPiQDqt12.3AAjwjY4ZlfTwuU4UvBUqTsPkUT7OrwEJVRSiGGeUL3Hw328.NZaW+2uwAiGikr7PvueiC+47ZDeIC+.8EVJZSNUzxP4VPeClNLDVNSBCitlFVknCV8UDsE10sHWS3.Cg0loW7+A+Xey1jqqZey1N2rxLQIC8OIwz7Iqb7WQaAvIM5Bk0fUrgqQsqPmM3mOOCVH6SRRAAUjNxk2Nxm2N1IucTHucb671wcxaG6t7NR7yXuEV5yXSapT4zKNfZJoZ0CzDAMPp1ZELXqSFVxgYRm56vXEh5I8OrQ82CiplxXroUyOa5XPqxq9O+u2Xq+XcD7Se842YnLYpEhqEWGz9hWqHiNBKphuqN8AFMUwDQ.Hh7WCLFYpO15FQC7tn6zWfjD0PFXYESPU+pEVviYgD0j2R2.MSWVY7cTn.Mt.75z.YMEi.ePlYhzGSu3cmcI5cXMrA3AxEKtRUQBcBXXTyDiDMQyIsXNEKithAHRWNjfECswBzg5.jobpFHrBbeCz0XCSxBC7NChMDafzMnPYSQKBxafzmS53a.L9NDXkxquMig58HRYjhFEvSAK5v+.fCnva.+YQWgQKLwiWn1fB.3oQ+zwiN57KGg16rOf9o8FLXuyF8ge.dZqofYBD9ZLCVJylqp.fFnJCQMvKL8wTPb5AC5eDzm8d6wmb7nO.z.5viGc1ACGhN77An8PWr2fQG2+xS1a.5hKGbw4COnIZHlfWXJ.RgEOlJl.tnL1RTQ0zlr+.HXMArSUFMU7ZLHfkvJWC3lHRBTXVtriBEQUcsIT5ziO1Dc7XjltUCjIfg+qSsrlu6VacyM2zbh1hl5FS1RkAAys92aV+OtU85DEYSHD.LxQUlrt9Va8OirU7qWCzqMsPlrKINuBdp.OSsZJx6hdsHrjqj8ZPGAplf6EutA4tycWOdWzuwVHXWzXQUS7Wga+0FAgxTYSCOGTxADjuCHEEIyBADIcQCS7gfuYiVngyA.r.cKy45l4Zzcb2K+rQI1ZZWrvXRF6e8Ze7G.+3nRbW2LbE5ybaIhb2AYyCVJsusvJWctugto4XHx1bz64Dml9ooXrpKwlCn.BYY8YtPnUwAQ67ntnbkAzWhqpmb34.nJLLbcare+BCKXYj+qEXMoREVmLfx1N777CRpayEke4.jRgg4.rRgiEAXLNVtlncvsyM.mtAC64n6lhvBtXiVW3NiK+.oco.jCUTAWPZQzoHIMI+PhqLPG9x.HcJCfHTF.YmUDH9W2gE5n6hNX1kQVwYFMEoDwWNPyYJ2x5aqhz41Eoyb4wuHedWkSJOj5+xfPCDYb1E8uzlqYqFHW6H6hDZQxp4eYWTql7shHDGxFFO+EsuNhXzwvPLHh6J6uyPew7vXTqTHtxDXbkIv3KSf0Im.yubpu9r45ZPbptRJI2VhHqlqoBNCC9RdE3XrLw0Z.pw5YIlE5bJddoo9d1RTo0aKiEIzYaiD4bnGYfmoqpmsd6mc8i36PrcKwke8iG7gO0+7SN+xACAFFYXt3j89vdu8jC.98siGyi4aygIiD7jCgvS6eztNvnIDLO4N8O57A6605DHlaMR6CGM3xS8Z+Nrpp9M1233ydm2ctRcAcHFbvvCF4uYQouTmPBLz+BQvpL1E0mytjsCDjmg07jEJVhFmlry9NyYIJU6cz9CGT.GBbgwdVV.xla+Sh.uAXUrnItT.Xo.Da8874oY..k+XsJS2vX.ovrFJTxNuoAx0KaxRObBKCziHSnaW.DLjihEiy2tDlyztDQkhJ9b8Euv9yuBXheKxuiZrpdMaaYMmuvb5ljgfNBr6RA5XECSqeDfCWGxkeAeGDz8DxHPLtU62T0Ai6vc60.MUg9u7cZ.qFRrjtqeq7MYFeozha2321qa8RraWdZvdAnhSu35FeubWzHz3I3MdBd8zwv+7EF.mMXW55gh81N9AitNTvd0okau5xEeubVuiHa9HiU65jvtzUDqYsPCZCX0aCTr.vfD.jV..cG3ucZQ6UMsEyFZY.OGHS11oEviSK3518nMLFt5TQiuPjZ7.DZf1oAB.Wa.0ZKv.iI30vL.goOCPn78baGfs8MHhY9NraHMU2P1tcBSp211sCKfXXiQDEGfQSZdJnndp3s.Nw4nRamMTGUIxuX5eiC5tj+LQlpMty7S3jqFL.TQZfFZSamneCSmyogiTlLkn5QjA0rkfdngmAQoujgwOUfzlNjyxDYLzgkSwWBO2sEaDFTGNcgEyaUx7A1PSUjfI307x33tQbKg9.1QGFkyGx5cFP1LGniO7yIrljG+3F3jbRmV4N6MSeglEvKD11tEZs7PT2555GeC6.rNUbNMTXCEQooJehwh9j4BShm4uNc43iOl4XuvKjin7wTi4XIgMDk1+h1UzEeEhq+yHD.wnzL5r6VT4tLdr3BUq2S1GQvDnPqDAbvrXGDzWy1M6kfZgyvVPXbKwXrWeobN+IDHFl2Pa1MCZyfIZTUUfrZyLwUitSKI6ReHKaN.OMyJgvZphz4iGahsnZG1gd42RCSSvlhBNmO8QMj2cgGZ+NJF2.EQsCFnZ9GonB0kFsn2XDqPNPfmqYBDWUymAxinzRrhCxROxqMBCh2feyL8nVsXkHuEqIitb92nVrraqlOQCmyCVi1QFu307a2z8mc5C+55y6o7tK65130mC+Z7ehceg+xj6N+0ezFPOFx5TE1asu9MZuHw8j3zVhSr2wS.2rGSrO7H8655SM3W4+7Q+I18O8hY25WM3y3at8wUMv0qu5095abCg+8JSWfUESJFd6am2f34eIHdjvNt8ZmNkWP7aCfcaHpTgchF.uPn.36FI9cni.b1dUCZmuXAsK7.Dyd2m0gryGLj8VOZgrmNMyfRFAx5Z.8Wyr8sNFQe7n1iRH88EmqGe.8xxp3Kzg0Ug3ioyFog1y+RxAdI4.ujbfWRNvSojCz5kjC7RxAdI4.uHw+lIu.6IIAw3ANujTlAbeff4FnS2zxMffWtA5trXgSJNe+QquBIUnyNYea2650qdqTRE55Qe83RKIFNtIlXfvN5oj2h3ADVYFCopABhcjzIFylD1H6ptcRO9kBLPDgi2.0YmzGnAjWisA5Wonkk8ElEnKwqgFHVUp3bUeV3SPDwGRT9rex1MPuU2vP+lf56IhMtpw8I4zvrXw8xkeZKDMXSbbbQHmfrgTQmNOTxzN1062HCkISx13fm.FoiOM.QLgGyzhvqzjSAVLEVV1K+sdsx.rCUac4FQGZAQTlYLcYo0JTIeULHsBzXrEPXxfOwp+K2Il5dTdSgM0wf3.LaQ2ffm0Fq1ao42f0f8jIvzVKml76uAWmlA+wmGk85+4ilpA9SDpesC0Oa+Tb6mMbr8CIijICwKIACKMWknVteHxd+YwxgdQCysYdBKXH4sXFefF4kubNNC5RtxYvBtiDVnU55TcJzH0ljlL2whj1rPVZe9V.WjcIweNU44RHSphNq+eeml2bfQzsYIc7gK23CY7Cj041aGRJtDrSTwHcbqSoxqrQM9LfYFLU9WGRcKszhm0rDmhwgrjlXfIe+j9ag.ysWd9m6qBrMMrUbA22fjq9NkYH9QbKNcaINK.rBQAvkRT.9S4XijwxNz9FvS4L4+d6LkNSSrkE9YJ2l+AjayEC2NRxKXu4AFIm7B2GXkJrAe0ZfvpUqA7t8TnWFKAf6wEGoavne6qD6soT4vD9zJYc4LciYh1uTJKUm1a1f8jfv7+byGcSg18wzlhkYhLNKIgz+jwX3IrKuX3E5kACUmKYIdM17dUzkTl3Bl4uXSGWRRc5qd45mHuyirH2NsMQsV1XMKMKAhytqvCU5KB+R3UL5qrR0yplTkL.MeusoqAYMxNpR2nDKozZEFrkBt5KKBqD7xRs3rVGzQv3KZGI.iLl6fUfcEvEtiDMlmj2aj68.43Vau8yoyiuiawWpXw541TBOJnD69bulHLJu0c504qqsK0TjL5W5l.yQlseJXXI7ALxR2N5GESSkbZMyZo+wJ+RzHk440K6GGeayZJVRI5BFoqIpn9jlz4y.oGYAsQFKlMGaY5dRuXwZXXBGlm1GhbY8.nz9sVIzg7vX0EV.GrX.YBPopECDhzcjXOIIvdUANMPX6ZbNwAs3VcKaERQfE251MgAHoh.Hswvc2YX5a1JXIkYtnZcIfBLF0HxIfJs7qKvwZ2iO0Da0EjoSojvy0R4XUxdlRgNAO8AihcZTZCnhc9X5GHECcnF.JFx3AhhgJqwm9Ug.WIbPQE93z5d.jOCOgtNjo2WL.8z8L5ZYPp7XOuiLmtDfCsXRZUNPo7l6QV65mOrXFoXvvWMAkKv7yjzB3qhaJCCUggYIvw7.Y4YtJBLK7roe9vxwPCSzVJV952u0ZvYZWgOL5JoCFux6PptvTTB49sHG4uIjy6RAjEEG4nSzbpyrLb5D6TmYbB9qyLNgzNPeKrBOWIXYtTN0v4JQ0iDqyu7Arhyg5TX4TmbbJjSBXKTHaGjvIPdbuo4YIlvPfuexG3xQRhZxuPiMPQdMhCwThIcpw+JDmqSaY2A04v4L.Mtm+7QFgLu.aLlTtFZR1pbKImb9KdIZkKEEogoDRRtIpID7ZmD7reoxBkgO6D7k9aPRdSuW7uzEIjdO5uSlZU.Q6rmVjbm7Rx6qqXsZJKOxT5N9Ska5TJ0NT8.4rE0Nochj7swy6ox6dRtZGbMBd6IY2tOr6IIiwlyZIy1ZT6BTn0EcjCryLkQgUammS1lD0irGQEEEsbyYqYYTc09QvVkA9YWa0lIs2xA2Uiva9aj7vFX65Btje3M4LxJ1wrWawshWb6BChKSyn4dYFcFTJ3dzlQys9OilaMeFM2S8Yzbt6rZRSo8dhWlNmlFAmMu17ge9r2Pu9Ng1CGWSmQ6gfq2SoCqgGIBzUnrP7hAMpPHXXnKKnrHwpjoZMoc4UqIwGLZdJylXhH8IE0yurn0RuRaduhtphl6GZoqoWVNkYSfZ.aaxbUmossEZfnY7h8ds2.Q25B1c9ZoWPLEnVVD7WKKsa0J8hYIqkby2LUCypWJJwBnsyNaIlD6wToeZ9QB6kxj3wuLId9VcCqm0RP11KkPEid2VurquOS102xgIsNs+rqft5yxMrkuDl.xW97ZaP19avchdE3Rkxmp6Nkn1jPInMIjO9zNsVJHaWzum4El8TJeZ0KS4EytNi8j8paHrC7Ko1FDV0ZaHD3eBTaCY3aAcxCZt9PR6mAcOWXDrOIFQN8V8uo2gohLbvsZe1ADBJgO.XW1gucR6r+.7U52rU.bJDYymDYyS+jhHTljsO78dkpeNWvJqeZg9Ay2p0TySRoxEJ+5up7jadxNOikHCTjzklhsdZY3pU1pFqmHRD+ePzoUOBa+GHEMFyYCSnQVasCjx1vYwsojJPoax1HiX6TS.fv7uM+k08WYE+fobRabLfr7dKet2dqUJWZeM4kegekUz9HSmNkJtxYNSdqPiU6X5Wv6a+G8LxccqDMHecAicK9IVEXlMt+JixLM32ukow1QpBhdamwhfvORl45zf+gUxYYujUIW6HkEaKT0ij.9I7.b7SFDqfHSSpfVBrG+gqmkXWJMPMsDHcLgKokvISIlJZIlzIDnhD7ahiKpaAb74wu.+8JcGC7sKDEw4.9UGNtl9iRxdI+J.2OQh089YfRKNMtZT2xWXi6Aegsd8dRtt1iPwD6eveBrtF2Z55Zbq2qqwsVttFWortl+kBBrvVLFPumWdiOKVC4ewZX1lSw+XZMj+of0P90Tqg7q2VC4WKsFx+bvZHmSAHWK4WHE6m3EyfoMYhiwoeLdcTbF46WCf74elrKFtNY8yGRcuX5qUIvuVeL64CkdBlYiuVuRkwJp3JUeE4OZhyf+8eZC1I75U5hFx.bmoq07ylUfP1s.3CO5FUpfmcEVVFKOTCeKDrM1rRkJ++Uqo7PA
            

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

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

              @d-healey That you for looking further into this, and taking the time to write this code. But I'm not sure what to do with the information that it works for someone else, but doesn't work for me. (I was using a MIDI list - it's an array.) I tried to import the snippet you provided, but I get an error message. I don't understand where to go from here. There's another section of my plugin where a simple comparison operation doesn't work. I have no explanation for what might be going on, and there's nothing I can think of which might be wrong with my code. I'll try downloading a later build, and see if that does anything. I do appreciate your efforts.

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

                @clevername27 said in Failing at HISE 101:

                I tried to import the snippet you provided, but I get an error message.

                Probably need to move to the latest develop branch for the snippet to load.

                @clevername27 said in Failing at HISE 101:

                I don't understand where to go from here.

                Simplify. Make a new project. In the interface script add your global variable, in the on note callback set the velocity.

                Add a second script, in it's note on callback read the velocity from the global variable.

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

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

                  @d-healey I'm confused (though appreciative) when you say not to use reg variables in the MIDI callback. The documentation reads:

                  0a4bb713-f75e-419c-82c9-1915b06dc9d0-image.png

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

                    @clevername27 When it says use reg instead of var for variables which are access in the MIDI callback - that's for variables you have declared in on init. For variables you declare in the on note callback you *can use reg, but as far as I'm aware there is no advantage over using local and since you only have 32 reg variables per namespace you should only use them when needed.

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

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

                      @clevername27 said in Failing at HISE 101:

                      I globally allocated an array in my Interface Script Processor

                      You should be doing this in a non-deferred script because you have no guarantee that this one's midi callbacks will trigger when the UI is closed or that they will trigger before the other scripts that are not deferred and are reading the values.

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

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

                        @d-healey There may be no advantage, but why am I getting an error message that I can't use them at all?

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

                          @d-healey I don't understand - are you saying I can't use global variables in MIDI callbacks?

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

                            @clevername27 said in Failing at HISE 101:

                            @d-healey There may be no advantage, but why am I getting an error message that I can't use them at all?

                            Ah looks like you can't use them there after all - I never tried. Use local and all will be well.

                            @clevername27 said in Failing at HISE 101:

                            are you saying I can't use global variables in MIDI callbacks?

                            Nope. I'm saying you can't depend on a value set in a deferred script's MIDI callback to be available in a non-deferred scripts MIDI callback when you want it to be.

                            You should use two non-deferred scripts. Separate the concerns, the UI script should only be used for UI stuff, anything not directly related to the UI should be in one or more separate MIDI processors and the UI script should connect to them as needed.

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

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

                              @d-healey Thank you - I may still be missing something. I did try with two non-deferred scripts.

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

                                @clevername27 said in Failing at HISE 101:

                                @d-healey Thank you - I may still be missing something. I did try with two non-deferred scripts.

                                We're talking about two separate things. Using two non-deferred scripts is good practice, but won't solve the issue you're having. There is something else wrong with your code but no way of knowing without seeing the whole project. So try the simple version I suggested and see if that works (it does for me) and then figure out from that what is different in your implementation in your main project.

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

                                clevername27C 1 Reply Last reply Reply Quote 1
                                • clevername27C
                                  clevername27 @d.healey
                                  last edited by

                                  @d-healey Thank you - I did try a simple test - I simply cannot access the global array from one script processor in another. I'll try downloading another build. Thank you again for your continued assistance.

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

                                    @clevername27 said in Failing at HISE 101:

                                    I'll try downloading another build.

                                    Let me know how it goes in the latest develop branch, you should be able to load my snippet there.

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

                                    clevername27C 2 Replies Last reply Reply Quote 1
                                    • clevername27C
                                      clevername27 @d.healey
                                      last edited by

                                      @d-healey Thanks, man.

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

                                        @d-healey Thank you again, Dave. I built with a newer dev branch, and it works. My immense gratitude.

                                        1 Reply Last reply Reply Quote 1
                                        • clevername27C clevername27 has marked this topic as solved on
                                        • clevername27C clevername27 has marked this topic as unsolved on
                                        • clevername27C clevername27 has marked this topic as solved on
                                        • First post
                                          Last post

                                        64

                                        Online

                                        1.7k

                                        Users

                                        11.7k

                                        Topics

                                        102.1k

                                        Posts