HISE Logo Forum
    • Categories
    • Register
    • Login

    How to make a Panic Button (Send All MIDI Off)?

    Scheduled Pinned Locked Moved Solved Scripting
    39 Posts 7 Posters 1.6k 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.
    • W
      WillDevelop
      last edited by WillDevelop

      @d-healey Here is my code

      HiseSnippet 4374.3ocwbszcaibkFzsYmlneel4GPMzmDAZKSSvGRjVcmDpGTslHYoXp1N43wGc.AJRhXP.d.JZY0N5jeFyhYwrYVMKlMylYe1N+Il+A4ePl6sJ.P7hTDRhIxcKQbq59c+pKt0iaAT7LWGcpmmiqTgRme0TpTgunX+qrYi2arloszQ6KU3qJ12VaJg4PdgCiJs6US077nFREJ7IGh0oPoGJw+4u7q1UyRyVmNWjjzqbL0oGaNwjMW5Y+5eiokUOMC54lShT6l+5izcr2ywxYFvmOoXMooZ5uSaD8EZX0dPQoBe5AFlLG29LMF0SpvC20w3p9ictzVT+WY5YNvhhWnJ0G.RHtmikAxXTpzdiMsLNKnc6IAnb1buvmH7B+iEOwzvLT9buw2vKfLWin9iBOHN89jXzSMJ8pEgdYPoBQnzCET5aK1W20bJadIHe97hGYyntC0zieqQTWoG7l5EAepGiL0Z1HS6WaZvFS9dRq501QNZA+.0bzXFTRylPIx64.nZypNQ6czdtvEgVQIBPaFS4J6HaZqaMyfpTdzLyKN1w4ccsM5QoVU+Cdkghke1yH8oLRO.P4CrAMoUsbzLvq65oT9im8xS+mOXuyun2oGu+Au7ZTt2ydoy.GlySeIczLKM2pL1vxaRJGWJhtOfdT1gVNCzrPsUxndxxuWyknYY4bI0.io8fl8ad6NyEyE1yRiwnFPY0DLeWHXbjqyLaCxYZ1TKe+Gp0fvh3k.5D3.0LDhTJmnNHSRHBo9YNdlLSGakZaRpsIYYN6LUGhSYuzYFC7DJCmYqywZTE4OJWBZB8f9cjKMgPfHMFrCmqLA9YT0gPE5ZYonixNSyhxpN2JfMwZw+E.19tZWRN2jYQkKMBMtvgC2bp2pZMnxBoh9yJh+3UEsdWqoi0hYCl8EL5GXWvksIIRQ7OxUnh.RCvrcsLGYSMNGTQo7IGs+Qj95PsIm.gqt.AdiZqztuV0dKD2XQGxPeeItCg2FdE00CbSD6YSFPcS1XT+aZi48UUw+EoMznF7K0lsV.46OaP12D9aKuGbE40Xv09z2Ssbllh+0VjymO4xINFTxwZCfNU+csUDRFj+06.DGZCp0arIoYCj+5PWZWpA1DtlORB1mBFAC5tM5bSH.bniK4G8iF8GeXH6hYlhvyXCKDUOkxyqUYtWCazykEajAzu1XanN02pEFUWYmTV5BCMlFXN42HWp79tlum59bxPMKO.cTB88vrxQkb5L1zYrnR1c1vgT29l+Tr50WaxTK5Kgo2hJULd6tmcRrpBdJsIPCD8mwJ.YXOMcXhxmSXtyDR4KTn6DXbF1IyrXlSsLiS58rnZt3ju6sWZFcritF5bh2JGLKkw+QO5oSo1Gd7BXzwldfa.baDRsps1T72sEePsZM++VOPf3u0qVStzaKK+1j2yTJuObi.til3VS0+fiosR4+E6xUBBi3cA5Ssn5rANev+NpGDOxKHVjydNSF3rqyGTJGTNuiBDQzrFFMDHMVTCOZtYsvv4vnlfZegIiNAlJjGyzcFyg6ZNFljDpDNiH+5e.l7IlfSGBSGis7nVUoLGLfVwQOi18KoZhNGG7goNtLxtLaehQ4Bfqi252cFiAsmxgEWtRrFZyF9MTrKBucxcu3jDvzjl5QrvDbMdnrEZjn0HgcpWqYR6fFBcLDg5d9l4czq1Em+DllArBLS7k3DROGUTtzX9z4OmTmGjMvBls8B+xasc04xBpmJWK.xKl5386eNNx57q+cW3wzbwZAJdcvcXafR.+uPO61XXwIZfQnc033uIIix98wkdoXR2nhFGrxkDzxarl6zafa75rxDj7DRy5qBKi3uypfEvXikSVi7vSL549zaZrBdSib6MUUWitS5xYKMWDs48r+b3xI2v7Pt5p22jaEtYOL22rq2ZMdydzxY6nbQz12y9yQqf+bTt8mMpuF8mZKmsZ4hnstm8mZqf+TK+9yNqQ+4fky1A4aNn6r+TNxRUB1qBQt7NtPMIPdWnXdN4ar2FvRW4KwCRN.VcRisfUlzdSxV3pT.YsAYc1ByFqMVIHkLe8dDpnJHqAl7NldAnXGPQP11fr1frNaiJ1AUTMPw8Q8piomhYi.50FSHAzCjsMHqMHqCZKUNqpGpG2fMvUsBJB.2.vsEXrs.YvBgHsAYcPaopxWwZfhGf5A.qB.WusX8W3nUaAx1Fj0tMOWyMESXoVuYfh8PEwj4.fqC.2DvsEXLLEpsAYsQiUCMF5CTq2JTQNUQmVaLW1M4KrnEXts.YaCx5vSuEsF5ETquUflGhJhNM.5Fp3ZDAEAysEHaaPVGzZ0Pqoxyxb6PE4lDfFCeZ.H2D.tEXts.Y3PdX7uJt7SU0Pq0E0APsNfZCbE9Xtgfk1Bj0Fj0AMTMzPpgFpq39NlJIfXCb8rfUZ0Vrl11frNnQpgsd01AZsKWI.RLQhF.hMAyzBLy1fr1frNnUpgsb0NukuNzHAw+F5UdG40UmAIkJhk4gs7jwhFNFUv9IuNYENHw08RdcRENL40IqP2jWmrB6N+ZrAJaZaYZSIA64FQeLU+c88y9QYpk1UhMarBA2KNXDFOGHGwotl3Fc.NExTWJt4sjxv.GQpNeyRLGRTRsyjUsn1iXiI+SeOoVE4R.pKndlvXJe3zgwHAnzSUAs3pkjNmAUTjgGZ9RkNAXl1HLyNaiycvbvOcFSgW10v+SAuP.RdWZxzGSTByFbDk8JMqYTkJn03UhPJURWyiRJqV949WWJLQQMH0Sk3NfRnGuToAtTs2Edo.g59HfkGBgEOoUT6j.IpYHPA7nAGknrXrHO2UAC91g9XAPME.wqQHVTMuqVFHO9YbiuTLbFNbYPPDXbs3Nx0xWmQD4B8vxejPjK4RGQzsb7vVMeiPE67MWtgItYPvThlZhsDuSmN9EoOyEKXe+ZnS8U6K4cSv8CSwjKhXR9NxhBhgRexSpvU4iBMwexB647l7zzv8Fy2tyb8wtCow36ftKYBcZYOF5jrCtW2cG.8OlA1Lnve5lsRbmVknML7mT9zTXrSbERdy4FZ7WK930y2y9fMtWrYe7qb3ejGkGCdbCNWVHzB5dfCsgAE1zOv9g4Uw+YnbaCHh4oypUS9kQCK9E+BhRJB78fEI+w+XlNMfFIpekJg17iwtGjtgk4cg42DRdOXgt+jL3FtAj8PbQ8+3N24N26WZM59+trb+Qr+Rc9+x3rcot9nsoasiuTBu9bSy84O6w9qV4xwlLJLybvZ84OlPbsRvJd3OX.bMp3hbdKeHhfpQsI3ByujZ9m+2gOetlGjKwhuQlbxA+mTGVNAGnNTkLFglq7BGlNnzkLVcT.t6wGKD9adL6kOXp.mrG2NvFKnfkLB9pYyL7oURDYlsaOaD2YwCoGn3pEXWR7OLTgx9IncYXREa9r1rgDJFr8ZdHnHBTVLa.FEL.Vkgeenspw8M3li+zWSgbVeODZtWy400QmowWm9IZrwUGZ433pnjAqeZHpUHOCxkoBG2SeGWanVT8wPGi43hoSej8oAneSP9yAH4Hx4sonGV1n+kA81ewe9+PeLzx86IJbCjg3hgiPDeC+Z+95.WR0s+M0BlVEUXhocrEMvcLZC7TRhzSi0HqrST5E1MSUzMKkMi0MK5JGh1MOt8SyaXv0rIQPPuQzkqDqgkZ0JqheJ1xOveR5qLxZoMAqSIp+QLG1k1hnzv.1mPT7CHeLFiAWmfVhXD5LXb24wzgAH27jAbKxmF.VOMNSvBG1Nw5wwQsyexWXxPKO0qEm4ELBfHuqL.4ENj33bseKJYyIZiOnYL2j7BDcIU7cLKlPWOGTaTuSsU3vE7RFENC.Dx5iwnXV.QegIMmA9vMf6WCHGwuXiaAnqikEpWbuRx1cL0vWnMeMxFPEwKYxlj2iIEyqH9BDYhI.HJBY8QFJhD+k8SnVwzvOdI4iXzOE1MBeRYavydTy.nYWWWsqNZnXyVT3Vby46j3aJuWY7kZXOdHRrjZCRudi3O+MDZdl1qF5OR.+iRieBzM3blrZvtOG08K6uw.KDyPFux.K369OJAzvGRgNMO.e.G2CR.aZPGlGP6wAs2MCZt8C8D9gdO5FwdTNh0NjC5g2Lly46JBrftGdyzUKGn1kCZWeLCfD.W7ey+TZqj2FPWQCnapFPnM38cVf4FjCKsK2P6ltqi.XbZwf2BC9nKnLg0BeYK7Cjv4533CI2Q36iHQr+ejRhp10K3E6Pw2EdM+29iw4Erqf0h4f4ezmI9urFIHRzWHiafKjzSthJFbKsj+6KJLkM28vmPIOT0eM3K5sFcH+S176IJQeaS8SsObtg3UD+c3zBtT1LWHjBE5+RpJWJUNZXowyKi29ipbUXVRcMl.dXgZUB3erJ4A2339.gzXlOAoyHda.y9UhPNlyYy7FyKk+XsBWdTPUD2oHBdF02TcJn3QCgO20BbyFWc9XX0aJQ.jeSH4CR3MfQdK3Qv2lrfVVR6ErG4wLmKchy6Wc74a3+NAavZnyHcHOeA.k5YZQ6eEj1wjpCbctzipDQx9Tu2wbltImzP2RfKZd9u.fgHqHfFUym9XXgm+aSX4x78A1ei+SQZb9crkiF.VPefVh+9Db2224ZBtHxLJqFT1hw8QqIf2ecg65hvGrlvs25B20ki3v0EtqKB2ccg65hv6dmwEeTcgCmT8RWHm49LXlwQJaTirATwHkxb7KRESydiRXwb73ybHx6QpvCiedWJt3y6Rziiit30qHREcrOx1jguXtK5P5H4+NYHIU3q8SkBpJiexX9J+SFiXsBRlF3whILyEI9ZChdljjxE.F2U.n2U.FdWAXzcE.s6J.Ctc.7MEimN2cEE86ETztWPYz8BJCWUT9FeTBd4w43HWLXCsRhve4WsZ2fCSLHDfOMOMjupXzEzmAF+3Q3aPOdh37G..FTXJ0kYhi2TPbPFDmOtRE8WQkTguEZjSwmDCSpvmJr8WFb54vSJE2zeawDmeJoO.ifU.M5UAef+lYgW7YOPRR7NYgW8+Tf25BswmsRiCwg+qCf2HJ78jhB++..uo2Y7ytzYZtZSnLpKzZevz3hDGKxeVQb+X2K2DxPPnebEIzRr89Yy17RHpfP+aqIOzA41CMTPn+u0Dg5kaBMRPnMJrdHzg4lPZBBMYMQnt4lPCDD5+dMQncWQBkZdKNq9SYFH0IFq9OkxCq9LQ+uGkaZoGgVcVSzZu7SKsHz5esv5gVcyOsFEgV+10DsNL+zZXDZ84qIZ0KNs97UawDbJUNfRJfcmnwkgqtfeRvjJ7nh3gLSNxALSN5gKS9zgCm2P9XrFxSxUC4yKFdrNkn1ZPBI3iu4XplqcdllZ9Jc3sj+qnstELDS934WWL1luthgCIVAEma+uR22b6qJFc6XiQsuf4+MlffZQOVqbB9EEme3GSrFHWvGNapAj7X2gfovb.wu6B7Wo249gZ6Myi4LoOkgv5IMXTv2PD7kI9Wk7CohIUJtz5QEyWP4C1pPwXGLV4XGJV4XGHV4TGFV4TGDV4jGBV4rN.rxoN7qxK6fuJm9PuJm4AdUN4gcUN4AcU994PtFIBpdzfqR3RhS+kVw2TD3zLKMV7uCMvu3P7K.ZCw9hq.+hlv1yjcUzbQt29h0XUo32V7L7wtlMGePFbDxPYcvQ+uNR9xhG.Af5r4D7gE686VOe2iHI95iXzIZLWSr+5KlMoOzGRmBV2FxSB2nGXXSTU900BxVpO01feweE9wuPU75B9EpFTHLcftqyE5hDDwuvS9LtDfS17waJU7D7ZhZPJgEKVqZMIbntKz0wl+SUkjxVm52BcZbKzo4sPmV2Bc15Vny12BcZuTcvAgvIrmH5N.BN6.9HoEJb.eRUdTnz+Oc1ClI
      
      function onControl(number, value)
      {
              var id = number.getId();
              switch(id)
      	{
      		 // Panic Button
      		 case 'midiPanicBtn':
      		 	if (value == 1)
      		 	{
      		 		Console.print("Panic");
      		 		Engine.allNotesOff();
      		 	}
      		 	number.setValue(0);
      		 	break;
              }
      }
      
      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @WillDevelop
        last edited by d.healey

        @WillDevelop Oh wow! You're using the on control callback, I forgot that thing existed.

        Ok so do it like this instead.

        // Your button should be set to momentary with saveInPreset disabled
        // Replace myButton with the ID of your button
        
        const myButton = Content.getComponent("myButton");
        myButton.setControlCallback(onmyButtonControl);
        
        inline function onmyButtonControl(component, value)
        {
            if (value)
              return;
        
            Engine.allNotesOff();
        }
        

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

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

          @d-healey

          Unfortunately, it didn't work.

          Does the Engine.allNotesOff(); function only send the command within HISE or also to the next plugin?

          Because the plugin should not produce its own sound but only output MIDI data (pass it on to the next plugin in the DAW)

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

            @WillDevelop It's internal to HISE's engine.

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

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

              @d-healey

              Ah Okay, do you happen to have an idea how I can make a panic button that sends data to the outside (to the next plugin)?

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

                @WillDevelop I don't know if it's possible. You can forward incoming MIDI messages out but I don't know about all notes off.

                65b481b1-79c2-458e-9c2e-b48455fba398-image.png

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

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

                  @d-healey If I find a solution, I will post it here. Thank you

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

                    @WillDevelop just send 128 note off messages?

                    HISE Development for hire.
                    www.channelrobot.com

                    W d.healeyD 2 Replies Last reply Reply Quote 1
                    • W
                      WillDevelop @Lindon
                      last edited by

                      @Lindon can you give me an example code how I can send this via a button click?

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

                        @WillDevelop

                        do you know how to generate a midi note off message?

                        HISE Development for hire.
                        www.channelrobot.com

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

                          @Lindon Ah such a simple idea!

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

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

                            @d-healey said in How to make a Panic Button (Send All MIDI Off)?:

                            @Lindon Ah such a simple idea!

                            thats me - full of simple ideas.....

                            HISE Development for hire.
                            www.channelrobot.com

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

                              @Lindon Not really, only in conjunction with a Note On command

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

                                @WillDevelop said in How to make a Panic Button (Send All MIDI Off)?:

                                @Lindon Not really, only in conjunction with a Note On command

                                so look in the documentation for NoteOff

                                eventually` you will find:

                                Synth.noteOff(int noteNumber)
                                

                                so ...

                                for(i=0; i<128;i++)
                                {
                                   Synth.noteOff(i);
                                }
                                

                                HISE Development for hire.
                                www.channelrobot.com

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

                                  @Lindon
                                  But does it also send a Note Off command to another plugin?
                                  Because the plugin does not generate its own sounds, but only outputs MIDI data.

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

                                    @WillDevelop really, just type it in and try it.. if not - then you have learned something.

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    W 1 Reply Last reply Reply Quote 1
                                    • W
                                      WillDevelop @Lindon
                                      last edited by

                                      @Lindon Okay, I tried it and it didn't work.

                                      1 Reply Last reply Reply Quote 0
                                      • W
                                        WillDevelop
                                        last edited by WillDevelop

                                        I have found a solution

                                        Button Callback

                                        if(isMidiPanicBtnActive == 0)
                                        {
                                           isMidiPanicBtnActive = button.getValue;
                                           button.setValue(0);
                                        }
                                        

                                        onNoteOff Callback

                                        if (isMidiPanicBtnActive == 1)
                                        {
                                        
                                        	for(i=0; i<128; i++)
                                        	{
                                        		Message.setNoteNumber(i);
                                        		Message.sendToMidiOut();
                                        	}
                                        
                                        	isMidiPanicBtnActive = 0;
                                        }
                                        

                                        The only downside of this solution is that you have to press the button and then press a midi key
                                        Because I don't think it is possible to send a message command with a button click, at least not "Message.setNoteNumber()"

                                        1 Reply Last reply Reply Quote 0
                                        • J
                                          johnmike
                                          last edited by

                                          I know you guys are always looking at the “coding” way to do this…but wouldn’t a simple “no code” way to do this be to just create a button…make it momentary and assign it to the project master bypass? Because doesn’t that send an “All notes off” message that kills any midi/audio playing?

                                          W 1 Reply Last reply Reply Quote 0
                                          • W
                                            WillDevelop @johnmike
                                            last edited by

                                            @johnmike that would be a much simpler solution, but I found nothing in the documentation about project master bypass.

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

                                            13

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.6k

                                            Posts