HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. WillDevelop
    3. Posts
    W
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 21
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Is there a clever way to deal with overlapping MIDI notes?

      I have found a simple solution with the MidiList object:

      • When a Note On command comes in, then in a MidiList the index of the pressed key is set to the value of the note that is output. e.g. I press key 60 which is not active but only the next key so "60 -> 61" is stored in the MidiList.
      • When a Note Off command comes in, before the Note Off command is sent, it is first checked whether another key also has this value
        • If no key has this value, a Note Off command is sent for the note and the key is set to -1 in the MidiList.
        • If one or more keys have this value, the NoteOff command is not sent

      onInit()

      reg midiKeyList = Engine.createMidiList();
      

      onNoteOn()

      const receivedNote = Message.getNoteNumber();
      var outputNote = getOutputNoteBySnapMode(receivedNote);
      midiKeyList.setValue(receivedNote, outputNote);
      	
      sendNoteToMidiOut(outputNote);
      

      onNoteOff()

      const receivedNote = Message.getNoteNumber();
      var outputNote = getOutputNoteBySnapMode(receivedNote);
      	
      midiKeyList.setValue(receivedNote, -1); // set pressed Note in midiList to -1
      if (midiKeyList.getValueAmount(outputNote) <= 0)
      {
      	sendNoteToMidiOut(outputNote);
      }
      

      I hope you can understand it.
      Thanks guys

      posted in Scripting
      W
      WillDevelop
    • RE: Is there a clever way to deal with overlapping MIDI notes?

      @meto396 Here

      HiseSnippet 3296.3ocsZ0sbaabEFz1L0jN1wdZurWrkZlHpXZZ.JRQxH6zPweTTqTjpnhamwiGMKAVRhJP.N.KsLiCmdWeE5E8MnWza5M8gnuD8MnuAomyt.j.fjVjxlbRjAN6d9Ne6YO6Y+A6YtN5LOOGWkDotX7PlRhOOY6w17906SMsUNpgRhGkrsMcHg6P9dGNS4fwCoddLCkDIt6gXcRj5dJhe+ue6ATKpsNalHEkW4XpyN1bfIelzy91euokUKpA6ByAgpcwu8HcG65NVNi.9b2jpJCo5WQ6w9dJVs6jTIwm0zvj631lS4LOkD26.Giws66bssr9uxzyriECeQSoM.jTbKGKCjwnTk58MsLNKnc6o.nb1LuvckdgeUxSLMLmJel23whBHyzHr+HwchRu6FgdZgomZH5s.JkHDktmjROIYacWyg7Ykf74AIOxlyb6R0i10Hqqxcx7qSB9TONYn0ndl1+QSCdexKIkJnte5vE7cLyd84PIEKBkT2A.0lme.8JVKW3koFIaHbxEQ2c1Oc5zO+4j1LNoEnR5l1PYr7VNTC78ZdYy79yN+zeWy5WbYqSOtQyymfx8d94Ncb3NO6bVuQVT27bd2L4HYhJMC.uOfdL9gVNcnVn1YWP8Dz3HacqQFLuzlxGxlo2HyKO1w4pZ1FsXLq7+YOrxQJttyfgN1PK2yuTATGxrYtTKxqntlTn+yK8aotDpkky0LCbPgG32d8a1elXgvVVTNmY.koh.I81Cfnm.Ude5T.5NtFLWRmwhgWoIvusqu8WSdsZNhVgbjBEyQ1cubjhUxQ1CjUFjUAjUEjooVAqj5ax4q2VnhZfrcAEKAJVFTrJnHHqLHqBHqZYTwpnhZAJ1.0C.VC.t..7t.tk.isGHqLHqBHqJZKMAqJLUOgAAf0.fK..uKfaIvX6AxJCxp.xph1RCYUgcCTrIpG.rF.bA.3h.tk.isGHqLHqBZLUzXnOPqPw.EagJB.qA.W..tHfaIvX6AxJCxpfFSEMF5CzJTZphBphNM.5cAjKB.WBL2dfrxfrpn0TQqgdAsB6En4gnhnSCfdW.4h.vk.ysGHqLHqJZMUzZnWPqP4oJJLI.cA.5cAjKB.WBL2dfrJfrpn0TQqoM0Z0Pc.TK.ntK.ZQ.yRfk1CjUAjUEMjJZHsoFplreGPr.f3t.fEAqTBrRYPVEPVUzHpXqWqRfVGHTBfr..4t.hEAyTBLSYPVEPVUzJpXKWqJnzjnQw+d1Xui7poyMeKSFLKha6Rs7XgiGCKnQ72iWglwduU72iqvgweOdEpE+83U3fYuOwe.eqQ1PyBZovaeU5T58Y5W4QttuodehGNY3.GCFwziPEs9zo7bH79TN7Glv2PrgwxDcpMoCiLTlvFxDn635xz4ViS+UOGR7XAYyHc8sEQXEbp1S.vgzrzwxjK6jFbslcIYmKyRdKlcOHc9uAxvP9oeBHjXRKpso9Ab6fdlWRz1IcJ.ik.hosA6cm1MrEQDeFpkPsTm.rGlEFR7ZabgCZiSGwyBYGSkZB7+Lv2ETUuqM4fSJqme6HeOF+UTqQrr6fvIpDgjJkN0iQxnk4q8eOUfBWRGwcByk8E0.qSGWF8pouJQnfOBX4Sg.yK6wQsiCjrlSAJfG6JPILK5CynshXLQ5FljdRZY3RMnELfxM0Ae8XBpsmHvvlQcALIH8bgz9DeiHCVDwOyBoVP.xRcQoeOgjNkKqGQ2xwCo8nAc.SHl3QH2vraWlKLulIUNiT0pU8KRejKVPC+Zny7U6ghQGcAZl0THhXRdAYYwfPoO8o6HT48RMweKB6Y7l7r4g60luY+Y5iAryiwKHp6rPnmW1WAgw6SfQz0534XMBrYPg+3MaknNscB2vvey4SmCi8ipP7NmanwOQ93DweE+AZGv.ugi3h2bDOJhPifLDjFDId1bwd21PtkLd.SMgAQ1r2w+tYUweIO21.nH8LKxKQ9lvgQe4WRxNGAdoeNwEp9KhS3c1YpMeej9r4aXKrWaVm1J2mEmAendMYBs0tSaw4AC2mcLlJZVOVpMXW1KVTWVH6+A6v9lnr8C1cEtMcq6rREqmZlok8Sw84gqdfSd1zlhBjiNkEue5kOo5jYfZi5cpcVAbA6VapS7kj.L5EwBH5KcwDK.+tc+zZfTxkqbSqFAByxZ9RLF6EZEp3GL4uLBX+mP9ZV9gtlvV7Lky6tX+4bEtn0nLIRqF2cqqikE1Th1QEuqHcndXa7vJ70HVI9.l0VPobj2hq3QTQbGgl3jCxhPG4QFYkNI4ZkxZZ36PfnOga+fQbNt1S+UmrMFw.dvK02VrJEpAPxZttzwG0U5UyJrWtY6s70Ypm4MvVnqiagM55UBV4zLT85ScGhPKVD0pg9VR32Zd7igtgfyjUC1FBTajweMeKEyoLdkAVx2FaECZ3g4PmsN.2TfayXvNOncWGPaI.s0MC5Z6GZI8Cs15Fwt2ZDqcn.zCuYLmw2UDXIcO7loKcMPsl.zZ9XF.I.t7+l8z7VYca.0jMfZy0.lZCwXmkXtNqgkNPXnCleniDXblsluaniK2O6BJSZMlPLXO+.IL0s.+fb0fLQNYRJYUq4cNi1F1bCKquKbRHGo3QeKJx8OmAGDZVgo1boyVnFgAKtVDM49xREF5K4X557dbpKWl4VSUUcgLdBlMdYmcWWwS1hNfrgOyO+UBLcZfnUD+6zY.bY7QtP7CJz+nBSmZtkYgkFcoUhlcXkyCyQqS4R3g0xrS.6iTIOnWRz2HkFw7wH8BBt5vsekL9h6b1Hu9hRyQthMd5IQDTEYHBQxyv9l7CAEOpK7bMKvIaL9h9vVhxFBPQGQ7iQ50fQdC3Q3tiXAsr31ScmEXNW1.m2t53KNtm8C1y9Tmw7w2h45S0xzh0drGmMHeGWmq8XYCIoAy6JtyvbBRCiAAtP8Psyja1RDxJgFUym9XXgnZ.cxjQD+5eBMyQZbxbrkiF.1EZfVx+8o3onr+DBdHLKnLUnrki6VaHfarovcSQ3laHbasovcS4HNbSg6lhv01T3toH7Aez3hG45zzI4u10jyZygMJ0K61pjsgJFpTtieQPZ5mR1NEVr.OwLGxs3nj3dQ+rkIW9msL7WUUW9QBCUQG6irM4mNjYuru0ph+WVTQIwC820DTUt3Cb9H+OvobACJlF3W2b51TTDKJI7WaVYs.vHN.9jYkAf8wBP2O1lPuOVFP+XAnysqI73jQ261siFyPQ+SBJzOInz6SBJcWUTdrOJ0cFzw4.m2IvIcxfy7aA8O+vQMnbJdmB7G6AiGGxb4l3P8DMXu0TmIugAoR5uXFkDOY5WBWIwmIs7CCt+ATalkvrOIYGp9U8bcFYaHk9NH4QBztiCd3Z7hBfub+6nnzWbQAv292IDsso139qTJ.A7eQ.7FggukRX3+k.7ldmItcBmQcoCXblKzZuyvnhjWrjeQRHEMo9ZSHCIg9gUjPe.a2XwrccIDSRn+9FxC0bs8PckD5+tgHTq0lP8jDZ6DaFBc3ZSHpjPC1PDp1ZSnNRB8u1PD5fUjPyMkgfU+kEFHUMBq9GJqCqtub72VqMszCQqpaHZUe8oEMDs9aI1Lzp15Sqdgn0eXCQqCWeZ0MDsdvFhVshRqGrZyiKnTl.JkEr6.pPFNwNrh+Avj2akDupAoOV90AEWeL+unn7kS61cVC48QZHOcsZHOPdEPEDiYiWAN7X3NlQcsiOMU5OPJloG0nr08OC25VRJl0imeQxHGxIn4INC.ZQcGi53QeK6H6ybYdLNdGIWMd+njgOVQI0+OJepo9iRF9zRUhS0XsjvL+y492XUIyaY4P4vN9t.19mf+edxt7KGYJNQqXqfxE5AFMz.10Wst.SvMugFyechW3GnVejG2YPaFGg0SoSufanapOC.5mU7CHiHUIpzBgEOyEUHr2KEPFwJUuyeMQR7y5logKriY2LgttVYjKWMhH4WrMhnCFgWAi1l+XzZ1lNXnE6bn4FQr7xjdvYmDsxbWFc.zhwn9nkfdxVTcXGyfbww9ghE2z4ZCfECyOYjE2bnkYLxW2BFwfibpWeA75XGcJdXgwZucFMOC9AOFtI6COdY75XSOzi7ZwW0VMeob9OT1+Is7pAOTXpH+GJjWE922jdhhx7WB4GmDHyHKJO5chFuH39E.sfHWDY7lCa6YxGGdSIextnzqJEeRxyvO15h43cV.Gg8KsI3n+0K+gIaBQn57YD7dIa8m1L2kbkycFgibOgxcMww+e+nAsgwj5Lv51vt1vS7ARofpJdWMXuasY1FhW9Y3megZ36I7KTKnPXxIcWmK0kaVEu.62WHA3jsH8VpjmfuSzB1fZxjp4UUvLqWpqiM+moonrXcJbKzY2agNEuE5T5Vnyd2BcJeKzoxGTGLOTvMUDFN.BNqoH8ahDMESwKhBU9+3x1OzF
      
      posted in Scripting
      W
      WillDevelop
    • Is there a clever way to deal with overlapping MIDI notes?

      Hi HISE Community,

      I have written a Hise script that manipulates MIDI notes.
      This means that I can trigger the same MIDI values with different keys on my MIDI keyboard.

      This leads to the problem that if I press two or more keys on my MIDI keyboard that trigger the same MIDI value, that when I release one of the keys, the note is completely gone, even though I still press the other key.
      I use the Message object to manipulate the incoming MIDI notes and Message.sendToMidiOut to pass the manipulated notes to the next plugin.

      Any suggestions for solutions, perhaps with an example script/snippets.
      Would be quite helpful

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @ulrik
      It does not work with stuck notes

      Example Video

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @ulrik Nice, but after playing around with it a bit, I realized that you still have to press a midi Note to send the NoteOff commands

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @ulrik Yes it works but unfortunately only as a VST2 plugin

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @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!

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @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

      posted in Scripting
      W
      WillDevelop
    • RE: Set step size of button for pluginParameter ?

      @d-healey That's exactly my problem, but if it's due to HISE itself, then there's nothing you can do about it, right?
      It's not that bad anyway

      @d-healey said in Set step size of button for pluginParameter ?:

      The problem is on the HISE end I believe

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

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

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      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()"

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

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

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @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.

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

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

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

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

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

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

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @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)?

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @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)

      posted in Scripting
      W
      WillDevelop
    • RE: How to make a Panic Button (Send All MIDI Off)?

      @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;
              }
      }
      
      posted in Scripting
      W
      WillDevelop
    • Set step size of button for pluginParameter ?

      Hello HISE community,
      I am currently creating my first plugin in HISE and wanted to ask if it is possible to set a pluginParameter stepSize for a button, because if I want to automate a button in Reaper, I can not only switch back and forth between 2 states as with other plugins, but it has a range of 100 and if the value is greater than 50 the button is activated.

      I hope the pictures make the problem easier to understand.
      I only want it to be able to switch back and forth between 2 values

      Thanks

      0408ed17-fb77-44b4-b11f-ec7134a0d216-grafik.png

      a311bbfc-7e09-44a1-b00b-26492bf808b9-grafik.png

      f0ba6758-0555-4ce3-9b05-af66d9328cb4-grafik.png

      posted in Scripting
      W
      WillDevelop