Mute/enable a sampler when a controller value is greater than or less than
-
@afinch
cc
was just a placeholder, you need to use the actual incoming cc number. -
@d-healey oh I see, I am a little confused as to how I specify CC1 there. Could you explain a bit further please?
-
You don't need to specificy it at that point. You've already done it on the line before
Message.getControllerNumber() == 1
What you need now is the CC value. You can use
Message.getControllerValue()
You should avoid magic numbers too. Instead of
mute.setAttribute(0, 1)
you should usemute.setAttribute(mute.ignoreButton, true)
-
@d-healey Based on what you said this is what I got to but I still can't seem to be able to get it too work, am I missing something obvious?!
function onController() { if (Message.getControllerNumber() == 1) { if (Message.getControllerValue() > 64) { mute.setAttribute(mute.ignoreButton, true); } else { mute.setAttribute(mute.ignoreButton, false); } } }
-
@afinch Looks good to me but without seeing the whole thing I can't say why it's not working. Can you post a snippet?
-
@d-healey basically trying to control the knob so it triggers the ignore button.
Here it is: HiseSnippet 1449.3oc4X80aaaCDmxNLs1sMasHOrWFfdXOj.zEX2llNfht3l+UXz5Dinzh8VAiDsMmkHEnnRhaVeaedF12f0uJ6aP+FrcjR1h10Iw0HsaXyOH363wi+3w638SpsT3SSRDRjSkiFDSQN2F6Mfq5scOBiiZtCxYIbKRhhJcyTs0fXRRBM.43T94ZENUV.Y98gM2hDR39zBUHzqELe5KYQLUg11MdAKLbOR.8HVjk0q2noufusHTjB3oLtFJl32mzktOQaVILxYwcCXJgzSQTzDjCdKQv.udhS4Y1+ZVB63PpVnNxCbTl5CNgJOgQOcOQXfF4Zc1+GscOVXP6gwhDD341EQlxYQlkwsXArQ5KhPesY.2hYXGibJMNjKOFjqeQPdJPxwBRKjAo6h87krXUwHZ7bKbSNbf0g.GE1PIyVjy6waK.C3p0hH8o6IAgQSXkMpU69tviUeRmTtuhI3tB99BE8.9JqV87pUp9tptSNTmNScL8xHEggT4TGVe5KurItBOM5Xp79tmPBSoiLD19iGSWb1ho9Y6ZKCE7lbl5fXZtbQRQ8obBfxCa5yhbDBlpLmDKkeR3ExBnRDCbxMvufKNtNx.9QY4u+MMPup4NDEYna.OBqRLUpX5MiyNzSfZlrC3J3cnI8UhXisQwBtd8cV5JWzyFsfM94FCJpwXMRTCzglEMFhhXAAgz1hDlNzaUL+GPMerG6sFje9x+1y+y29qaFYWuiPQjyr2WIoc5vNyTn1gEFkn.r0LBpeQN2C+pDpa.sCIMT4lzG7SHi2mFbjvX+or.UOnpygCtpGk0smZnD5iS6gBNQPZHQMdUn95n7Az6E6Tec9MG1iCrutZxRyEt3znZVoQWQRxLB26hayT98lNdKME7BoKetwa9Ec2AuamNTeUAXW.u2Oco2pcsCkuMCJ2C6ojTBj200iDEC2jXvSUbtT8qi9Qwyb+n1RZnfDLrrHyr22XKHwmJGW6u2vrTOKRjxGasxQ9gzXJQAG+Vy4lMN7vmKEowSNqOroIY4HIzODBE1Cb.mBwck8dbaoHIoCrcL9Jwdn1oxt5XUglCoPywjw0seZDb1y4zPcOVGGPET9pOqY9sHPY8Y1VaVkZGQLm2PsrQt9DxOXB4GNg75SH+nIj2XB4GWHmEPaQh0YFZRBSzc3FyFIAvAsIvV1JKdKV2QNOSy3WwXY5nXtAWVq1TZju3mKtEKLa8AuBpOklUdF2KW6Eftb5Fk9EGr60KWh6T87J2oZEVG2UZAqKzgYstTUgE6anMrxptO8ot0AqqT4b8iKz9Wq6PCl+itar9ptZSylPknTEcsDp5YJHo+XPXEiFVWtPR2JUoD766pj.2jmXr+c5mPUCMyGUlcmzg.yx1Kvi284fqD95hqzkwOZtX3LkNQ2xj82BBWYYbKh0gtwqAJeMwu1hcWoKhcW1okgn0RX6CvIH4gxc2U3iuBC7k7To980Y9ISwIew39Td1ZfeEuVRkgXziou1bW9IP+RPS1sE6jQ+an1w6c2RvEw8Dbl+3cmfZltcoRarO0MDTcAMGKzrbiCogTRhU776Z7RFmRji2z8SJV7o+JZS875avYv0UWV69eCNqk+eOm0KKzsTNiUWX0kp+keNeargikqlR7+TP8PQpBn5NjtIF5o6A7v8o1LSKoumMStlVVCHOJOvH7Wvu7AqOjFqdv5CGD4OzUvdK++l1VNkobMMNyqhEBDjCsSosdM2uHnLh3KEuwOqchFq2znAPI27cwpfaokcG8kFv3ZqUS+l8r236qKD995HzzmyCli47v4XNqOGy4Qywb1XNlyimi47CW5bzjVdVpRDkcIYwmKR+9qN2xVH6.2ptz9i2YVql7.5YCSFxt8vJYbWdf8mfYuzvvOxFsxIryqO8zIaoJgsj8G6YDe0hupTSn0sTkcW.pU6cypVb1cT0RYzeiKG79q
-
You need to get a reference to your muter in the script.
-
@d-healey Sorry I meant to include that in the example. Even with that it still doesn't seem to be working.
HiseSnippet 1408.3oc4X0raaaDDdojYRjRhaSfOzKEfHnGjARMjRbbJPfaX7eABIxVvzIn.8fwZxURaM4tDKW5ehQ.5g97z1Gg7pz2f7FzN6RJwULxJJBooos5.glYmY1uc9Ymgrqf6SRR3BjUsCNOlfrtgs24L4fMGfoLT6sPVKZ2AmHIBmLVabdLNIgDfrrp9TECqZKfz+d6i2.GhY9jBVHzK4TexyoQTYA2ttOiFFtCNfb.MxP5Uca6yYaxC4o.dpZ2DEi8OF2mrKVIVEaj0U1NfJ4BOIVRRPV1avCN2a.+TVl7ujlPOJjnHZg7.CkwduSHhSnjS2gGFnPthWw+agPaNfFFzcnuHAAVtagmoZlmYI6Nz.5H9EdnuTufSgFl9HqJiC4piA4VlPtoAjm.jrLfzBYP5V1d9BZrrXEEdttcaFDv5ggPgITxjEY8F6M4f.L4JQ3iI6H.hQJzXslMuqC7X4G0Kk4KoblCmsKWR1i0X45WTuV8WW2o7R85Mw0TaifGFRDSbYUzWLMEavRiNhHtqyI3vTxHAgi+zRCZcYoA9YmZCA4r1LpbuXB6xRDP4tJk+OGUfnRs2ewbuuWHMfHPTvIeU6mw3G0BoA7nL62bnK5Es2BKwCMCXQXWhIBIUc.r1hbBTmjETqYuEI4XIOVKaTLmo1eqq8d2zyFsgt+j64E0UTWn9M1i9pgHx8Od0u73H7Yl.7TZfbvHF+7O5NfP6OPZxA8tIfPpOOHMDKGudPcwP9BP.crjPUlFKgJO27hixEIKLaEISuFdVg6sr6Rk9ClLdqLA7BAw+twa9UN2zd6d8H9xBvtf8N+vTue4iNT95LnbaaOoffinr9d3nXnlVim514Ts9XzYHdl6LzUPB43.ijZUZr6Fof+RLN2e2UuUOIhmxFauxQ99jXBVBgeCctl696+TAOMtrVu8w5jkCDPmIvUXtvdLB32klmwME7jjdvwQaqDyk5lJ5q7UEb1m.soRFm2toQPrmwHgpq4rr.VuHgnh0T+NXofdloz5co4AXc7FZWpoaUh9dknueI5UKQ+fRzqUh9gEzYNzN3XUlgpcco6ou5rcOMXftX3HaH4Fz9iLdFGyD3QtYMTLlGXBcQuxmeM1qLqM1ucN2KAQ482q7aV1NyYyanJKQBsaENQoRhy5N5gAWoOQNlKpwcTKemkeT85WR69aV+hZ2rdMZOmFc.Ufg3TFoPhc0c1arry5q6zBjtVsKTOtT4eopgJH926r1pK6nDMSgZJfrRBQ9DITMbDPzPyg1mwEjMRkRN6tNRAL9vizx+Z0SnbhjYiZytQ5gAsLsB7300+W67Ly0DISnG000EIc.+UVR5UrU9twKUpNykJslZohwzXUtrowxBW5AiVz1LBVZnLTt4dO13Kr6QOySl5erpXIYBF4S1TQebd0gZCwnGUcg51rSfNo.mrKX1hzCmFJGxc7t5c3Ld7.Ni5OdeKnnoeehvD6S7.AkWPayBNK4tOIjfSL7mei6yoLBVLd63OHeQqO3WiZhwquxNCtNpxZm+aLMa0+2OM6zbcKlOKqCr6B4m4w4aXqm9xQMr7+TPcedpDFBd3fn1PScOXBceh4LqUT2ylQ2TQq.jGgEnI9S3W9hsFNfqZwVCWD4OzTvYK++51VVUIL0zd5WRKDFcNzLkNAdO.EjfgP+jfxHrufeneV6DEVullCfRl9aWUytih1YzWFv1t4JMQQPmyC88UEBeK3gmrN2aNz49ygNqNG57f4Pm0lCcd3bny2MUcTCs7jTIOJ6RxhOui5MasttIQV.2ntz7Cro2q1r.xYCSFxt8vHYbaVf4WZYmzvv2QFEyRx4cL4zxsTEvQRw6hk90mp9HNiFXs3q.0FZcKjY2Ef5zc6rpEqsGUsTE8W.sNG1VB
-
@afinch I don't see anything different in that second snippet, what am I missing?
By the way, if you use script tags when posting your snippet it will only take a single line and is easier to copy.
-
@d-healey I thought I had added the reference in the muter script, and will do!
-
@d-healey am I working in the correct script editor, should I be working in the sampler one?
-
@afinch Yes it should be the script you've added in the sampler
-
@d-healey I am expecting the knob to cause 'Ignore all events' to toggle off.
-
You haven't scripted anything for the knob or connected it through processor ID as far as I can see. But that's a different issue to the CC stuff we've been discussing so far.
-
@d-healey Oh I see, so the code is fine but the actual CC data isn't being put in correctly. You can't achieve what I wanted to do just be assigning the knob to CC 1? I want to control it as a slider really. So a slider that moves from 0 to 127 (CC1) and when it meets the 64 value the Ignore button is toggled. Need to get out of the the Kontakt way of thinking!
HiseSnippet 1448.3oc4X0saaaCElxNrs1sMasnWra1fPwtvAnKvpMMc.Ec0M+UXz5DinzfcWAiDsMWjHEnnRhaPuaOOa6Qn6QYuA8MX6PIYKZEGOWitt+7EB9b34P9wCOGd9j5JEdz3XgDYU6fgQTj0MvtC4pAaNfv3n1agrVF2gDqnR6LUaLLhDGS8QVVUetVgUskPo+d+S2fDP3dzBUHzgBlG8krPlpPa2VufEDrCwmd.Kzv50Z01Sv2TDHR.7TE2DEQ7NlzmtKQaVELx5Ja6yTBoqhnnwHK7FB+gtCDmxyr+PVL6n.pVvA4BSTl58NgJOgQOcGQfuF4ZcE+2Ag1b.Kvu6nXQLBl4tEQlpYQl6f6v7Yi0WDg97zArK7vLFYUYRHWcBH6XB4lFPdJPxx.RKkAoagc8jrHUwHZ7bcbaNbf0i.GElPIyVj0uh2T.FvUqFRNltiDDF6Pi0a17d1viUdb8dIbOESvsE7cEJ5d7FqT+750p+151kGpWuoNldcjhf.pbpCqO9kyxwF7jvinx6YeBIHgN1PX+Oq7.mKKOvKaaaXnf2lyT6EQ4WVl.JOVoO.xQEXpJM7ubd32Mf4SkHFDkuJ9EbwQNnT.ON09cutE5Us2hnHilFXFgUIhJUL8FvZK5IPgR1oZM7Vz3iUhnTaCiDb85aci+zE8rwKXqen0vhBKVKn.Nxk8FvcL1Y0lnPxYlf6TluZ.Ll0WAxCnr9CTZINHEMJVzFVnqfCSTTnrTBUjPFiV2xXVetPR2HQoDbjujzeKljldRhrpiOTuG8HAnX0P8QhgFzEyngZIgeR.QMYAl9ll7AzSqYVsN0kGyTCMuIpbU2RyWU2ruTXdg6svcYJuASGuUlBdgjh+pwa9cX2DucudvYSAXWBuy2OyKr9nCkuLCJ2F6pjTRHi22kDFA2Qjhm53bImOFsZhl6VMckz.AwOqHYjYuq0FIP7RNo1eoU5R8rPQBeh0JG46SinDEb7a3y0Zs+9OWJRhJ606eZZxxARnUGDJLGXONEh6Jy83lRQbbOX6jNWwlC0MQ1WGqJzrOE56EOotcSBgydNmFnu1zxBT8pXp9rl40gnjryLsNcUZd.I87F5+lJ6TR99kjePI40JI+vRxqWR9QExYAzNjHclgt+eo68u57cuOLAcIvV1vxMX8GO4YZLSfGGlSghAAiozV9J+yioPk4kovsy0dIHJmvPke1BaufjAfprXEz9VZq6bX+D6T1kq1mplHD03t5guKP5n9kPe3l0Ou1MqWi0ytQGvEfUndRJrX2TlBMVw9IOw1ArtVsy0OtT6OT2fFL+6rWesUr0ll4PMMPVMlpdlBpFNBDZjpwrI28rURfNxiSs+s5mP4DMaNpM+SROB3k4r.Oda8+0xOZgX3LkdTWOsHoCDuxRRyIcLQoR04tTwYlkJFr6pbYr6xI1vtHWmKRxaNliOC2iclqJw6XcwRboIAg9DxJ5iy6hTaDFcY5KT2leBzIEzjcAyVzdjj.0HsS1UuifKhFH3LuI6aAEM86SklXepaHn7BZaVn4Ns1mFPIwFwyut0KYbJQNY63OnXgyG76kM0yqu.mAWacYs8+MXyV8+8rYmUna4btr1vpKU+C+b9F3T1W1Zxx+cA08EIJfD7HhnXnotKvP2iZxYsh9Z6L4lZYMfbob+TgeG9kOnyHBt5AcFMHxazTA6s7+m11xpJkqY6k9RZA.04.yT5X38.zPBHg9IAkgDOo30dYsSzX8ZoZ.TxS+XX0vczx1i+RCXbS860CcNesmmtP3afH7z849KfOOXA7YsEvmGt.9r9B3yiV.e91Y5ilzxyRThvrKIK9bQ52r055lBYG3F0klewtz0pM2md1njgraOLRF2l6ax5XmjffKXiVYI6bOldZ4VpRXKo0c9c9om+au4Ge5XBqEeUo1PqaoJ6t.TmtamUsXs83pkpn+.3VCzSE
-
@afinch said in Mute/enable a sampler when a controller value is greater than or less than:
@d-healey So a slider that moves from 0 to 127 (CC1)
Knobs and CCs are totally separate.
So you want a knob that can control muters when the value is over 64, and you want CC1 to do the same?Do you want the incoming CC to also control the knob? If so, is there a reason you don't want to use MIDI learn to control the knob?
-
@d-healey So what I am really doing this for is a piano library. One of the things that is often available in other piano libraries is increasing the mod wheel (CC1) to 64 to move from sustain samples to the staccato samples, this is the overall goal. On the interface I am also planning on having a slider that is always linked to CC1 just so there is a visual display of what the Mod value is. If the user decides, they could also use the slider on the interface to enable the staccato samples as well as an external CC input.
So I believe I want CC1 and the fader working in parallel. The only slight catch is that I think it may be good to give the option for the user to select a different CC using the Combobox. In this case I assume I am going to have a free CC and the slider working together and then convert from the free CC to the CC of choice for the user. Is that easy to do?
-
@afinch Like everything in programming, it's easy if you know how to do it.
Break it into three tasks.
UI Script (deferred):
In the knob's callback trigger the muter button based on the knob's value.
In the controller callback use the incoming CC value to control the knob.
In a second non-deferred script:
Use the incoming CC to trigger the muter button.
Stick with CC1 to begin with, letting the user select the CC is another task.
-
@d-healey Will do, thank you so much for all your help!