Hard Clipper
-
@DanH yes, it's working just fine. I don't know why it won't work on your computer.
These are the steps I followed (as usual actually) :- new project, create a scriptFX module
- create a snex_shaper node
- create a new file called "snex_shaper"
- create a new parameter called "soft/hard"
- copy/paste @Dan-Korneff 's code into it
- set allow compilation to "enabled"
- Done
I'm sure you know how to do it though...
If the snex node doesn't work for you, and you still want to use it, try to use a
Math.expr
node and put the algorithm @Dan-Korneff used in the SNEX code in it. -
@Matt_SF I get the same issue here when I try to export a plugin after compiling the network .dll of a SNEX Shaper node.
-
@Dan-Korneff you must not wrap the snex_shaper node, simply leave it as it is and compile the dll :
-
@Matt_SF I thought all custom SNEX nodes needed to be wrapped? ️
-
@Dan-Korneff actually, if you want to keep the bare scriptFX module in your project (and in your compiled plugin), you have to :
- disable 'allow compilation' of the network
- wrap the SNEX / expr node
- compile the dll
- compile your plugin.
If you want to use a hardcodedFX in your project (and in your compiled plugin), you just need to :
- enable 'allow compilation' of the network
- compile the dll
- compile your plugin.
(> don't wrap the SNEX / expr node for the 2nd solution)
Edited
-
@Matt_SF I've tried both ways and still get the same error!
-
@DanH did you retry in a new blank project ?
-
@Matt_SF I did, I'll try with most recent commit. Maybe I'll also try with exp node before that actually....
-
@Dan-Korneff tried shoving this into a SNEX Node but get any error to do with the parameter control, I'm most likely doing it wrong though! @Matt_SF I couldn't see anywhere to add an algo into the math-exp node...
Any help hugely appreciated!
HiseSnippet 1451.3ocuX0rbaaCDFTVPIx1oSRSldVGclI0kT+ZM8PhsrUplV6nwx0StkAlDxBiHAXIghsRmduuBsuA8RdF5qReC5aP6BBJQPaI+iljPOiLA1EK9vte6tPpejvkFGKhPVkOYZHEYsIdvTtbTmQDFG0aej0iwCXAg9zJc7YggzHzdSCIwwTOjk0ZuVokU4hnjm+8k6Q7IbWZ1THzoBlK8mXALY1r8e0Ox786R7nmvBLzt9q54J3cD9hI.hVCaiBItiImSOhnTq.FYU5.OlTDMPRjzXjUw8DdSGLRbAWq+orX1Y9T0.Gz.vP5o6J78THVMKpyHluW+Ym7XDXk9Y9g0z9gmgOj4wlOuo+PInR1JL8GVExCu0xAOGS3Ya.uE.IKCHUTComfG3FwBkYRT3YCbOtjFMj.tcSnn0EY823NBPAtb6.xXZ2HXv7ErUSa6WTA934e+vIbWISvqH3GIjz2v254q+qqWd8ea8JWUzvgKTlZahD99znEJVEoitoEtEeRvYznWT48D+Iz4JBG+79T7x8olgbW8o1PQAuGmIeSHkuLh.J0UAu8y81mHIp.Q5bfd.6WxTPvZe56AVsNrTFuOMdrTDB75qEy.1hvahOQlmBoxaRE.9fbwMUvgGyjSMyq9jwqtqP7I39Lo6nEiwBK.ifm5yAFSyFeD9fgCotxL.VD28se4R8VOM0C1S0luY5vJceqyBS59cbFAOLhFRhnmH56SltULQUL8X.iunxY9B2wCXefd8rhPMD1SowVtiHbN0OdURdJcm8JN2bP4XwDIie9gDYD6RHK7nIACfxztzNonClypfJGRO1VMVwKFP4dIC9O3IUniZrUpPmYBMR+NhJuPDMNIbj9NbVz998iCmM0oznXE4z5AX6sg+P656KtniHHjkRagfRxb8E9SCGI3LW0TZMlA8cCDSfcME++.I9DByWwysJbjvCbN3tDWvINsOQNRkanps.DQZz1tyIj4vUFmP4MUFYVSMsOA1+.0AMok1ZJ4pSJNc2Tl6QXQrKzjTkV5ft19GQ2NS98b6TGde5kypusOKNDXl6MAxvz7+by.i6w8nWpR49VnnYeRDzLVpUsz7QvVcHieph8AuphFnCIWNebcX7.IMTw1UicfwpiYIUwGJJ25PFFsTlQKgql2pkgIfmbV9YfEbr0ON0aa63zD30ioWn8fZEpVsca65MZVsZs56zZmFo8Q6FQ+kITt6zYv4o3ZNaWUaqlM2ocMambfK2I1IG1JgcZtji7lIaTkiU7STtkitqdSmk5MeMjlubiV71LpxHO.2eDI9FhI2fUfissAVfTiYwph+yGd1Ga8w0eExnQJBkiwGyoW9t3QD0sLyw3+ZMi2TtY6naivatiIU2UifdWETaaYbGevR87lA073.kOaAeBAJWpP9.elGMpOb+T0ncm3wDcYZQv+04GnaM2pfYt0APIbO3dpI6kB54S1rVVdA3xarvP4F3XwP42MhD4kEHlcmBSBTRRjQVRJ0wH5rg1qvUyjK17XiXShTy9g2Rjo38KxXhAT1USNgDcNUpu91mvX0cx4Wt3e9Gpm+5kF0kVfKN6ZRlt4LMuknU9LkuJs2.7I3vxGN9FLgS7mFOq+PpNed6PbOXwKM8uD9bU8hbGlMzbqDA2qSPgbwt0Vbr6g.ZsuZUv6Y6jmharc8pUq1xtUq56T2olc6ET8a9NsjVaWsL5CwNqTiMnAkcMPg1s2od6VP2JMsZPfPHGAWdKqwV0Za2JwV0ZTyoQqFUWFz9b5j1DeLMlJ0l8JsaLYIKk+bsRFah6EepRpKwelEgK0smPLNfjbcxU6K18k3xuAD2Hw6b02mWc3dXxL.8km7qeTFenZbEGz6McUALO16bcmc8rEulpqvZpsBqo9JrlFqvZZtBqo0Jrlctw0n9gf1chTDn+pFvD8OPW0y5.tp2SROPz+CbV3pLA
-
@DanH easy peasy :)
HiseSnippet 1428.3ocuX0raaaDDdojV4XGmhDDidlGkKbUI0uVnGRhksREZsifkqQNTff0TqrVHxcYIWFakhdu25aRdFJ5aReAZ6kdtcV9iHohjhs.RoAj3L6ry9sy7MytxC7DVTeegGRa6Kl4RQZ6hGNiKmzcBgwQ8OFo8X7PliqMUuqMy0k5gNZlKw2mNBooU7kJqz1tDJ74ue1QDaB2hlpBgtTvrneGygIS0N34eKy1tGYD8BlSFqa779VBdWgsH.PTQrAxkXMkbM8LhxrBXjV4SFwjBugRhj5izJcjXzrgSD2vir+RlO6JapRvDMDbTj5dB6QJDqzh5NgYOZPxN2GAdYPZbnXTbXO7orQr45yFOTCnmNirwCsB4gWwbvyLK7Lx.uk.IsLPpTDjdBdnkGyUlNhBOOD2mKodiIPXOKThrEo8a3tBv.trpCYJsmGHLeBUZYXbfN7w9e83.tkjI35B9YBI8U7J6uyOsy167y6nu3PiGuzwTKimv1l5szgUYZu0MwJ7.mqndGn+Vhc.ctgv1OeLEu5XZ1TtUztNigBdeNS9JWJeUDATbnBd666eLQRTIhXcfc.6WxTPP6X5aAVcTZYa7wT+oRgKvq+fbFvVDiBrIx7THUcS7.PLHWdSkb39L4rr0UKxqJc23Uqm1eWg6SvCXRqIKGuEVBdgn1mZ7FWk9H7IiGSsjofsDt2qWaI48FJ20xychKOg0WAjciE068ZykVX9K3zh.WOpKwidgXfMYVEehpg64.dOP+Jag0zgr2Q+vJG2HHbjxhJVSHbN01eSJvJemaZYt1lVnyEARF+5SIRO1sPk5YANCgV4VztwnCzoUPUmEIanjU7kgT9nPg+EdhGzTIqEOnYxfYJQOiJuQ3MMLcD+NRaqnX+w9tIptj54qHsZagMpB+gdgss3ltBGWVLcFRJg5FHrm4NQvYVJUQVj.8W3HBfUMF+eCw+BByVw+GF3CcTF8J9Pv3vy9TbtyDif2v8HVPfc1.hbhpNR0SBHpTupVyIr4vZJOQEgUNI4vvn3DfIG0lO7nvhpwCO9Jd0Tt6QXguEb3ppD1D8AquGsZ532ykSEPro2lzW7XluKvVOJ.p.ipIxoAj6yGQuUUR9kP47.hGbHtLxzxykfk5TF+REiDdUkgPmRtctbCPdnj5pp.TxlfrZaVV0nhhxMOTFmVN0okw0x60sAEvSNOuG3ASinGyFcLLMaAb8ozahhfQFTqVmNFMZ1pVs5MNr8gMiO+smG8GCfT+rD37Tbcyp0h7UqVG1otgYNvkaGalCakwlsVwVd2vER+bEmEka5n6ZzzbkQyWBk9q1ok9XNU4jsvClP7WSNYMdA11FYvBTZjjqJ8Guau229867bTlCfQnLL9xX5std4o5OD6.eWMbfr8d+HT7BYWi4RvIaEhVntY3buFepZI7YWyqv3tAx80+B8PUthapD9BTnvqrfpq7is9.cHvMV+qh6FueRaYDZgkcK39EWEbcx5pULeoj1xY8omEmg3O+9DojfT6xx1SsLBAQNXta90e+ep7C+0e9rrogOKtwC7I.+7oiOGS3D6Y9IMehs4Sa6mBYa+bBbx2H3.8vYq7Wtf3Z3VWqHiKvsBaiFNv8ZGTHWdq3xyaO.PqwhkX2ydUOE2rZiZ0p01nc6FG1vrtQmkTZMekVQeyEqQe.1bi5ZBc+LpCFzoygM5zFZEF00bniPHm.2VHsqYs5UaG5q5Mqa1rcyZqBZeJCR6hOm5Sk4X7I8xxxRVI+I7tgYKf2E22+R0nVD64UwEPGIDScHg2eYy90F+ebaKGhkm3MVQWfTs4dPnFf9xC+I4aCcAAYcSzayFpbfeh7arrRN6e4yo1FLm5avbZrAyo4FLmVavbZuAy4v0NG0+chWDHENQ2sETL3jntdZmvIv83COHD8e.SUOb9
Edit : error fix
-
@Matt_SF ah, haha, indeed :)
Thank you, I'll see if I can compile this now
-
@Matt_SF ok when I try to compile I get this error:
❌ /Users/zzz/Desktop/HISE_PROJECTS/EQ-1/DspNetworks/Binaries/Source/CLIPMAIN.h:25:53: call to member function 'pow' is ambiguous return Math.sign(input) * Math.pow(Math.atan(Math.pow(Math.abs(input), 1.0 / value)), value);
Any ideas?!
-
@DanH ha that must be my bad, I did it too quickly :
Replace
1.0
by1.0f
in the equation -
@Matt_SF Thanks! Ok, so close but so far it seems... I go through the process of compiling the nodes, but when I go to export Hise wants the expr node wrapped into a compilable network. But I already did that, and compiled that network, and the project is using the compiled node as you can see in the image, so I totally do not understand what I'm doing wrong!
-
@DanH I replied to this error earlier. Stop doing that ! :face_with_tears_of_joy:
It's either you leave the
math.expr
node as it is and compile the whole network :OR
You wrap and compile the node only and disable the network compilation :
Then you can compile the network into DLL.
:) -
@Matt_SF ok I got there eventually
Thanks for the help!
-
If you want a straight up Hard clipper, try something like:
f_hard(x, threshold, ceiling) = (abs(x) >= threshold) ? (min(threshold * sign(x), ceiling)) : x
Can I just stick this into the math.expr node like so?
EDIT: No!
Could someone show me how to add this equation in please?! :folded_hands:
-
@DanH f_hard(x, threshold, ceiling) is the name of the function and it's variables. The result of the function is equal to the output, so consider them to be the same thing.
abs, min and sign are math functions, so you have to use the HISE equivalent. aka Math.abs, Math.min and Math.sign.
x = input
threshold and ceiling are parameters that go from 0.01 - 1.00 -
@Dan-Korneff I have a lot to learn!! Thank you :)
-
@DanH did you get it going yet?