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

                          That would just bypass your plugin, it wouldn't send MIDI out.

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

                          Christoph HartC 1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart @d.healey
                            last edited by

                            The proper solution would be adding a sendToMidiOut() to the MessageHolder API object, then you can call this from anywhere. But it's a sensible request, I just didn't use the MIDI out functionality myself too much in order to need it.

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

                              @Christoph-Hart Would it be possible to add a more generic midi out that allows to send artificial events too?

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

                              Christoph HartC 1 Reply Last reply Reply Quote 0
                              • Christoph HartC
                                Christoph Hart @d.healey
                                last edited by

                                @d-healey sure, the idea would be that you can send any message type like this.

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

                                  Gotcha...def the scripting stuff for sending midi out to other plugins...but as far as just creating a generic "Panic" button this is what I was talking about...just for the guys and gals that are trying to accomplish a simple task of creating a simple "Panic" button...WARNING turn speakers down for the audio example...

                                  Dropbox - File Deleted - Simplify your life

                                  favicon

                                  (www.dropbox.com)

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

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

                                    sendToMidiOut

                                    That's a good suggestion, but when trying around with the MessageHolder object I noticed that the object does not have the function sendToMidiOut() at all and if I understand correctly sendToMidiOut() only works in the Midi callbacks, which is only triggered when a Midi signal comes in

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

                                      @WillDevelop Christoph is saying he needs to add this functionality to HISE, it isn't there yet

                                      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

                                        Okay, my bad.
                                        I have now solved the problem like this:
                                        When you press the panic button you have one second to press any MIDI note so it can send a note off command to the next plugin for each note.

                                        Here is the code for it

                                        onInit()

                                        // MIDI Panic Btn
                                        const midiPanicBtn = Content.addButton("midiPanicBtn").setPosition(204, 40, 70, 43);
                                        var isMidiPanicBtnActive = midiPanicBtn.getValue;
                                        
                                        // MIDI Panic Btn Timer
                                        const midiPanicBtn_timer = Engine.createTimerObject();
                                        midiPanicBtn_timer.setTimerCallback(function(){
                                        	var panicBtn = Content.getComponent("midiPanicBtn");
                                        	isMidiPanicBtnActive = 0;
                                        	midiPanicBtn_timer.stopTimer();
                                        });
                                        

                                        Button-Callback

                                        if(isMidiPanicBtnActive == 0)
                                        {
                                           isMidiPanicBtnActive = 1;
                                           midiPanicBtn_timer.startTimer(1000);
                                        }
                                        

                                        onNoteOff()

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

                                        Thank you all for helping me!

                                        d.healeyD 1 Reply Last reply Reply Quote 0
                                        • W WillDevelop has marked this topic as solved on
                                        • d.healeyD
                                          d.healey @WillDevelop
                                          last edited by

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

                                          var isMidiPanicBtnActive = midiPanicBtn.getValue;

                                          Check this...

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

                                          1 Reply Last reply Reply Quote 0
                                          • ulrikU
                                            ulrik @WillDevelop
                                            last edited by

                                            @WillDevelop If you want to send note off to the outside, you can use the Synth.sendToMidiOut() function.

                                            Here's an example, the project has to have "Enable Midi Out" enabled

                                            This example works in Logic, the plugin is an MidiFX plugin

                                            video

                                            HiseSnippet 967.3oc6W0saSjCE1NIdESfEsHwCvnd0TQUUBKvhTWfPSaQQPZiHEDRbA35wowpyXOxiGJQnJw6K2vS.vwyjIwSaJTEQWoEQtHJ97iOey4uuICzJFOMUoQXu8mjvQ3qQFNQZF2cLUHQ81BguJouHTLfJELzlSRnoo7PDFW+IVCvdMP4e97i1jFQkL9bQHzKUBF+YhXgYtzAcdpHJZGZHeeQri02oSOlR1UEox.vTmzBkPYGQOjuK0ZVMBB+GaGJLJ8PC0vSQ3FapBmLbr5XYg8uTjJNHhaOzFMDtnBw6nhBsH1JE0crHJbP4CcJBgIClmBpWjBtYwSbo74oh+JWg+bObyG3ZUgW8JvqsK7Z4.uE.IrCjZT.oaPFxzhDybMEkldRCWOhBocWnTXKB+ERWEXfzrdL8H9NZ3vLGBtWqVq4Ces5FMaBY9Ti+r57dYF+G3m2Gr9gbSkrQvJtlsxpaLJSxLBkzWI2UY36ICVs4GZ507jl9mV0nQKTmEjZUTDWuP019D82yw.YV7Ab8Z9uiFkwmYHj7pVQHmeEwsggUjybLTI6IEl8R3xyqMBMMQaqdSQEXpIu1c8o0tMyLFkDIBqNSkCZ2oFzK5sE0PKuJ3VgHkv0Fg8g.uE+cvTUQagGYKd5QFURtswIJoECXuKTfe+7fF1YxrCcdamiEglwyD7wW2YLWb3Xmg3G1Qj1WECAipAOw0RJyE8Bsw0sEAli0vHLz106T..c19bXBSElEQMUG6r6Zlp.p7U50sMzxTgYh6tneZyhWTHdCx.ggMdwXr1BvHTcuLv3zMX+IY6Qi3Lyb.1fryqtbVW4F9qbNbHWKeQDbhqa+yfDI4BShfqeYPZz3+wjFmZ5bA7F09DlbJFAfNnjJgFFVrPwgIXk07AxDKUxLQqmxMAq3rl.rwng0y.ciPFAsBtaxm4V4JcV41L2s5hQ9ASO44MRo8CD.vZsguv+e8ae66C+3V2xpyqf6RVP5.DewunWP607EPzOA.PETNMjcoQQG.uxQvYQyRQx0GR4vqu.QPFtuxdkP5N..fGbqopH95IZgzDTZGPzZ8e2btrfUsH82rjWlrjjKJKIAai2jxeTg5ifyk8alreEXxdtJyHjG1mZzBacGlEGBLILNDcojGYmNv0r8wEmaU1RLDlwyO7U3yTksKaNrJaWp7+jXDSYZ0aXESXVxgqjKAdtk4+YJORe6Y+1mcrJFZ7eCiU8pNii2dYc7uWVGuyx53cWVGu2x53+rrNd+eri18RONynhKFMQn9C1NeMHFusjBc44SDnuA4V4ZhC
                                            

                                            Hise Develop branch
                                            MacOs 15.3.1, Xcode 16.2
                                            http://musikboden.se

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

                                            54

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.9k

                                            Posts