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.
    • d.healeyD
      d.healey @WillDevelop
      last edited by

      @WillDevelop All notes off is correct

      Show your code

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

      1 Reply Last reply Reply Quote 0
      • 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
                                            • First post
                                              Last post

                                            18

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.4k

                                            Posts