smooth "bezier-like" fonction from 7 sliders ?
I'm trying to make a smooth "bezier-like" fonction from a little multislider that would have, for example, 7 sliders. I have built a little algorythm to do this, using a kind of "slopes-means" method – see picture below – but i'm not satisfied by the result, it is not smooth enough for me.
How could i do to get a smoother result ?
Do you know any object that already do this ?
hey, that looks pretty good to me. a smoothing-styled function would be a nice addition to [function] or as a new object.
You can also use filtergraph~ (with cascade~ to have multiple ones at once), then with the right filter type and other settings, your mousing will get you similar curves. just take the output and use it as you want (there’s a query inlet to get the value of any point on the curve).
>>hey, that looks pretty good to me.
No!!! That’s not good at all ! look at the handmade drawing below, made from the same exactly sliders values.
This is what i’m looking for.
It is quite different.
The one above really have too much "mountains" compared to this one below…
(p.s: but if you like it, the patch is in attachment)
mmh, thanks for the filtergraph idea but I don’t find this solution really practical. (i need the first value to be exactly 0., and the last exactly 1.)
Aren’t there anywhere a real "bezier" object or something similar ?
hehe, I like the sketch. Just scan it and use that one! lol
Will take a look at your mxj, sounds interesting. Would like to see how you did the math part.
For bezier-style, maybe something with jit.gl.sketch / strokepoint / jit.gl.nurbs? Wonder if the nurbs object will do the smoothing automatically, seems like it might.
I know this topic has been talked about before, and I think there were some other examples from people on here. Not sure what the results were though.
Again, a real bezier-type object in the standard distribution would be great… or a solid way to make them out of [function] etc. via just the right math.
In fact i realized that my math part (very simple averaging between slopes using a cosine fonction) is just wrong for this application.
>>I know this topic has been talked about before, and I think there were some other
>>examples from people on here. Not sure what the results were though.
me too i remember more or less about a topic like this that i cannot recover. what i remember is that the result wasn’t so interesting.
>>Again, a real bezier-type object in the standard distribution would be great…
>>For bezier-style, maybe something with jit.gl.sketch / strokepoint / jit.gl.nurbs?
>>Wonder if the nurbs object will do the smoothing automatically, seems like it might.
mmh… you’re the jitter pro. i found this : http://gritche.perso.libertysurf.fr/OpenGL/Bezier.html
all this gl stuff is really mysterious to me… you think you could manage some simple example using this ?
The a-hspline3d external by André Sier. implements a Hermite spline – guaranteed to pass through the control points and allows adjustment of tension etc. I thought there was a 2d version too but I can’t find it..
iirc, there is a bspline object in jasch’s lib, too, so you might like to have a look there.
i did some testing of different interpolation methods some time ago.
below is a short example that compares hermite vs. windowed sinc interpolation.
i hope i got the maths right (the hermite code is from musicdsp.org i think), it looks ok though.
sinc-interpolation should be ‘smoothest’ in theory. to make it work in praxis you need to truncate the infinite function using a window. the size of it and the window function itself have a big influence on the results of the interpolation. for simplicity in the example below i used a von hann window, but if you want to get serious with this method, you should consider something more versatile, e.g. a kaiser window.
----------begin_max5_patcher---------- 6220.3oc6cszbiiij9rqeEbTTGpxksahmjriYmHlK6bXONQLW5niJnkns4Z8 Zknsqp6Xle6KH.nDoDIQBIQIRJ1UGx5IIPlIRjHe7k+4mtYziK9Qz5QN+pyu 4byM+4mt4F4ak9F2ne8MilE9iwSCWK+ZiFuX1rn4IitS8YIQ+HQ99u+ny8XW ja1GrLLY7Kwye96qhFmntAdb2Gbuyg6gk+gk9HV7VN+t92DOQdoV73+689YW mmVLOYd3rH4m7OhlG8dX1GM+sYwymFkHGXnsu4h2RxdW2bWk0w+g7pfD2xz2 8e+oOk9vcG4DeUzje0Yc77w0LyIddxobP5iHlacybdmYl+3z2h9UmWhVMKNI x7rmBY1yZcy94QeHFX6M4W5rLb7qgOW2DG4SjSblblyqchSwM6LO+nLZkd9p mvhuc7zn2iVsNdw7bW5aFsctfYakfIp4ENcdkMWDjwmmtX7qQSxMJtYzjnmr 4ZrXYz7seeIAqvCE+lwyWtJZsPzLLQOvyeeCeaZx2KmLT7yeJbbTk+3Mbh+U zpIgyyXE2L54UwSVLOcXT32l91Y2veyQNgY4G2xOed3xR9oIKVL8wvUuGuN9 woQE3CBQzv4wyBShRhUiGr6leW7rkqhmmT3ZEMOTbMdY83UKlNsvkR8IuWxm LI583wQeDOI4E40ZK0pvtD4jaJr3ov6W2hnczh71SOEs5+37CGT9OurkSRFn CRKFs29G6tjhT3BV8xpJWZUxxK7NWwRjsjRmxeQxOWpkCF8zzEgBMnhoa37m G476YeUoxH0St6zSaWFE8pfxZftxzjU5Vsz0RVcOTxJoRxJ5nHqmKx4z30IO 8174QSMJqpoottvDUwtmdQ0CkllNKOsjT4nEDAip1ijk8XUzKJpRBhKHBxdy 5QEtUYl7jd+FUBkXq97owyqR0nbVl94kShVu3sUiyt8YBANEmxShVmDOey1a +11Uf67EeIdxjhamH4BwSVtPr0fd.BjoZ63NkY.ZbiOkia8aJl.JKaVG9dzj uKtMBQpuGljrJ9w2RTrl7V5b7a7W6GZxtCgMROFNUaE1lqRgq8dipxLhUSIN M1xJThNYVz50hs78q67aDrRole5e7p87aT2C0b1sRDkafKpdCbKag8ozp+0u r3iZoQRxBgyUV9WGMhDXKMBewL4mqzLS8cObS9K+ZLXxeO0j+2l8nPpq9c8I HoQmXr7vfZilBpdeeVklIsCu5LXReJ8uQLnOUU7VGKTTAT5fy4ylr9DqObMW 43EotHjW0jU9ASVwmbyOOwVyCQJDonPXOfRgzAoPHRgHjZuPDPoPb+UJr5yT t1YkX+SCDRkGyQ9TksEFOMY0pI+6qhCmd.hmtUQGQOvBXHeuSH0RbndwMeTg yCH1IT7VE1hpJceZAMWkuWIFIV7SNwBahXcWgYd1TC0JcgT3qBZd.W7f5+Y. EVw947.RsL.uCjAPseUeILfK2RegkrB6Am3rdZ7jnUiWLcwJfzVt16RF8UGN 3jKb2MnsqcRiNkIeNoUqJ2lhhLRLoWwpU0tGF4RgoVkfGTqVLvoEEP+6SW9R nwk6zb5PoF8hLxqSKfZbWHw+ix1LhALnFpfNiLJuhBF1EB3tPZRKGAcSHbed SHHA2HK1Z.itAgeYitQSRJzlmClT30CCzSptFXALA2pBzCACbbKmfjVy3lCk byZUjaFvgMucEMPnD6V0nFpjMl1tF1c0wcP2bIYpuJfMtCZWiavp.8ZUZtIP G2jV1NkfkS3CoDwEMkHlIFZwpy9jEx87mDRGT5.OLiFTLxzbw63h2DX+xRF. Uh+hQJO1qNuTp8uklM.rZSKh0QIh2ULzyEmbTtqTotJQXd67jIgIg4uR6aQ7 c4rJdzyurXcxigxoN0swnnRRHlDHHNoOKvmRPTfjUhmEjUROgrVQForJW7iJ 8nmJeESjTIUxojOzlEbAR4kdPw0ykdFr1cR6rJuufK+344nQT2ZoQr9IMZYV cbbuXOlnUKWLstB5PEmbU3cC7pKGmPzNTYMnx8Yh2wTVCkdMFxwoqtxZ3dio HNVs9wSoYF+.q9jNAQZQoGgjubtx59rrSkScMRRUALQ9nuw73AgZfD4oCk2S ZxkJxmlS6Ij60PdOseXRqQPi3Biz40hnbWl7H4u7KoCLfjUUPlIAMWh3g63k hDn7avyWkVi7xsq8zk+cGP7iyNz94K9lFCMklbQkBebeipCY82cOpKR7ie0I 14IXzRUvgYDizxqwT+71TaQQbiYQqJKkX4Kh9fCJZ68ckh2CnDhUDShZCFip D4Wo1b+1eDCvb6BE4J0yDwzuAHljCjXJs84ts+8bRbWtClYXRX0GsE9Hpcku WKZCorU96NE25jlhTuJcVyNNrg5K2YQuIsZaFVZ50j+VUtWa12yM.uXfceC. W3.wMNFckCX24TiKcf3VGCt1wf6cL5hmpbyS8t5od28TuKeJ2sO6HIt2Z789 bSGYr5BMJPk8rRIGkc46thduy33u6E1DCutU20eNRCqxs67jETjVTY5wRv2S 4ZQErQ+X4Jmu7kO+D61O+Dx4aNe9I5W27Tx1mhsfmopmDLg.goc77LVs7LzQ xyZOrI2GX2J3T36E7juBfcfYbk+R01dvfvN7NZ1A9Jgcjtx3dG7Coqbvh0HX weIh2wU9NT.LHhBkdHYmTwGBChczLH5UBCBsc8B4qBFjd8CE55GBmnBPkZyG +.HrGz.6ozx4nH+4m6SmJSAlpnNzajfAo+pfm2aBa.bMv.NCT2xMhJYU75wg J6JceH..4UUwGZxKEj1GzAIe+3y4RnEj5n.9Atn.YBs3peFpjacyYb1KoBiE xyFeOWlu+ck9rxFac.y61GUyLHLfBTtgDltN7QuViznJ610mZWPMd+.lFOtJ pNZXPCzodJDs6dpFu8hQ6QowSSdIdfHuzAMdVFZ4Km9tht01jXfZiuxcscsg vpMdvnhtksAYAp6rEtCfoTl4k8XsjY9ITQUoUrV62tLjJOmv5jrDAR7zaPKU GxtrTuDLBrjf1nLX9SC42xUT0hLJ6mtPbC.M+wjvXHLALd3Tn.01QUQqGqhy LEjMYXxf1td4oP0BCVcJTLc3TnfOEJjv3PCzPmD2BEdrgCgZmBOM4E1gPw7A EdclCg9MGrEp5pK+ppMsUtpODpQK6fvBXt3bld.TQm+fkc.UzQ7Q4iu.LEcA CJ55kV1oEFrxxNh6fkcfsrChiOop5.OK7BfT3QPCV1YmBOqBu.AOnvqCYYGx BUc1DdABYvxNfV1ARQmFt7rwmcD5fkcPUz4RsNyQHrAEc8SK6TBC1YYGevxN vV1AJHEj.6sryavxN6T3Ymkc9CJ7ZOV1sKf6ZJoHUAkhl8XsL5fZWi3ZkhJ. UG1EI2FLrcQrEaTnMJCzhHp6fcwMQR+pPjbXVtQO9b9UncfK9Ou6J8YClu0. VM.QWmFP5UIZDFThFQuBxrAizVm30NOsJbbZEqFN0YY3pDmu35buC5qNOFk7 QTzbmjOV37d3z2hV67ke55DNehyO2urSRAJ0wKdSoHGalkovJBstSUcNm18f pkiwufbrfZYXEqd18fM984ikAtrkvM2Gos82E6XkeuJfjcdoe4RAaVkvSU.N qUxnG5biYwTyeWHKtUOy7rblg6LyLhsLMzgO0HHRJf4ow1HrBoDju5LOosYM XEKXaq7SjkrSZ2YlY6hvifog7cSkTI5J8i4u4Um6IsM7STmRRMM0IsZp0c1t X+FIfgoVOc+BzwseQaVfj0eEHY8WARVmRfzJk+rtkYJ1L075V6qEX4Tq6HPR sxZjizFLLQZ0kFKRTFjE3e9s.ypCr2sDUI91xO6NxpDaVFR6VlNa25vN1NCV YfIsaM2n1L2vcq4F1l4VOd8VZfBOY66ocY1EXeuJlFUzI276u66Q5VNguhga EyMV+ccHgbJWGFbor+jXiWIHcq8LH1rmAwsaM2rQ+YEmYrWrND6cBWGR47Kz 5PrMge.2s1y.aydF3tkM2Xar4FSZv4VtOLqaupFx02wW2YRdBwXbieAHPdd8 cB1M2mRGoUlQMaobm.T8e2Dtr5thfpc6nqXCVMc9DbkfxuKHP4u7VaPgaWoo UYg9FbVGwaurU4vaAxHBvVfb6pyjibANrKY90M5D7dspwM3FSd6pAe6YyvF0 djtQPktc6lqJ8aUjaJvQc6ZIIBaAwt8Lr2KY4flZKchQMucIhvfp+qcMrgp8 i0t1aG5tMnSn1O8alc7BSGs3OOYcf5Z+PSM.65OBQoGen7iNnnDmplq9rvWi 9mwyGWSSUmqxgUVPPpWI7psKzuAp.suKzedZq5LE73parVHOUCLy2t9pNfKx PiUue1X02uXU1tZ5o3zt45hYQoUkRRzJmODuwhOV6j7R3bwCBN7COXpSCmFL LI5yRqoqNcZ5Djs4li62L2k50.lnGCXapuO2wLqUrbUz+2cNIgKWemiPKyho l5tiLU8rq55fHy8Pbre2UDbVz50gOGUJg6yHGtCmZfbEnVg5EjqK35UMwhcM 1PgW5rdqMF0SH0cZclWC1NgO8st9hcq0ScqE0S0mpoZLaVtfjk11+NjVKJvK 1PqEcn0hdR5KETjprm4AUG2g8Va2gaKEP5UdBsge4yOgRakge04WR6sgPZOA bUVZn.S.raCBkwWacXxacvPZPDjrckHUaxYsaS0FY.mQrWxDpl7T5Jg+x+k6 CoGVZtrkeFMccjiXLig1Tb0KRvJiW8nfVjfZXdzw1IiSMsnk0tgv5FTtqEZ0 c6up0U.31retictUJlp.0JRf7Lr9vZ5PACn3lMaxRd.QQrfa+xmiQ2+4X7W+ kOGSfqBAqOXGM3L0GfH8f8Ye7sjDgs+.HxJqBSK4IowLYOZWW2xB8GFQ9qVC VP91eDmZhgiKbxHlJcYC2qUza8HGonZ1goKdn5KF7EV1leYtkUe54VQiCEeB vVs1DlndaZKD2BlQy2lQ6oVkCUpGkoewBod+Ag9F.yyy3DbF7ChxGf1QXpc. Q+Uc1ABSCIb.n+CczVfl+LeY33WE59c3NDLbafT.tkOnl3cSi87jSh1+61nd 5rwafhauY1cxge5eRSBauGNh8d1.EQaJGyNVEtYSgC2aA6wtU0PwOe3LWqF+ AH8V4wNFrQ3aKZef5mf5XWDISPP2V6Hqt4zLShsMku717hyc4VZSIci6X.DH pGWBvXaman9Y4MmFJotjBzxQqwZlaGiRFOY02i8UQPlt8UsYPYCi5daafOSf r24dtQ5u.NWEal0LZYHJGaRT9aF44s4Uman.o+hNhVAbDGoaIPZGkp5INDEJ mHe0EXRakxmi.ofQAL0zT2dR817pV7jtac9JpE5jXCXeRuC6Spq3WTkfUbZh DTeQuvUMpCevE8BpWV2USWDNIslX1I160T3KptZkmuIBVPCPuZ8E9hLQzDjR 58tOP42NdwZYdeiuUmbZe0TQtoJSChutEixLJVRuFIyooJhoE3ApdvGh.rbA CZQEp0tYCRCWsVkmKqkmGqJpJkUcdrVYZRZGUkbEQUU0YftbC.PU4WsT0LEr B8qrCW8ppd9Q9FK1ZDt2pdcuT2slZzjSpNqcKPtbORxgorzsYEt9EGLi+.PY H0oZoFWr5e0tuRZhMiYdERr4ZDxT+wbg.60.DTxQVGvkm5xMuo6p6a8.LAwe aKIlwMUu5mSEdA.HtmTpYcU+e5fJd95vYKWKr+lBippR+LecG0qZpJ4LpDHn kXj9iu8zSQqxLAxA4Bijhjq4bBnljTomQ7.H.hd06ZBQ18ZL4U2Txq4P6Tkt UjIZJxJubb3Mg7SK+3n543GD2rQ.p1NJN01IADyRfC0t.HMBdX60pn1dPQDS +VG15BZXy6lXTqWmjZ29.6UPHhY6B.RYcSztFLrQ2xvMUn3u79oPwkkbG.cb 2t1cGLvQ21n2baF2sH4afC61UmJ.rvMpa1fENoPm+.JLei0nvbwDUXqmQRAf Ym+63oIQqt++QLthlVCbLSX5ytypHSEJEZNgiGyHqvi4SGVTui6KKsA1n.cH lKJWAn6UwL+fm3aWSTNo.UBoXi+Gp0qkVRnJ5cxbdlLJoXbDqiVoJQSVvtdj rLOnCmVgOETlCip7gPQySKVM6+LZ60c1hI4WyNZZ3iQSKH2JnYuMONI+nrrX 4fUPctJJNDUXtjX0TohXnMrl3wuNKb0qE74DI.iXRmds+yx4yIIVSJi4.9AD kw494324tfa99umd2JL4xHIEt8XOJCcWIOI+8dGO1wc87oDoywPAbWoaxBXb eNo3OSRe242x7vLZP5uvyU7ik2QelaPQOrUTLhsk6jwB0QdYT5VHe+wkyReO N+ADKHf4u4qOUvxDatUX.HwkThdTfTujk+9lSRkqe2UuMUANqYjRkSp2rFn3 xrp8LXMOYZ75DM9souLimFubxpvOjBimRv7OcrduXe6nUKWT2VHpn9PUYDSV pEUtLdPCu+wwhm+d4.yVlJ4873L6fyeyWiAz7uehl+0Dsp0NqDxLFxSGMrag zIz9kHEHu7oLpPXWHxLwYswFPnldwTAgxyXN1R5sIaScor7uTD1SJ8L.pbBC qvlPheCl1cWbIu5HU2BlTQX9.IUjqz9oQ1hSkZL.IHautgZrGnnYWX1wpSPf 804WnwbW.ODm8Jvhslccw8NjQfXkjBqKpiUhZO41y4L8y9lw75KiRpJ0FpwE EDuqSJoB+y.TRCZM1b0IWXMWp70cS5r6MJURP5RrQR+zt7oQRyrNsPYZx6xo t.VjqVc6oLl3RzNjHGQ5kdgxc2uAVLUYKAwXl6w6yhoGmwYDUGaDqJ2CpQRo 2fsYWDay9a+MG9HXrR8AgMliv9WwJuMq5FoAxSUM8Yrz.JlA2WuJuiAZmlJQ 1MeBBDtGKkdj4uNlDnBqoN5lFkQoCJuaxxQn1JnIJwnNGjptNn5Jd0yTgyfX WgGhIw4wz+YhTp5kJTU65lxavpFF03EN2Y0Pivwieal4yamo6wU02uM1pWQd mwxxNn8Uq6+.l+fnpS1P8M5+Bz0J87u9WAXIr57gbWXVBiIWmlBeqX6RicVb 8dRpCUXzGF3VzdRsVLsPKepweEOyNqj2uWrejwWR0sKzMcbyZNGbgwkwEFoV tEm9uQf3mZnQDI1XzvYDwMQD8oG2Yuy0rRZhSfWWh.DOeRjIyMHXubqYLdxQ 74LacBNo4AvtcwkZ7SOVi7MYOVYr3pFIWbOJjbI2WozV1RSWj0TnUPFocUcj TnU8AE09JFUTCVDsXUN9joQ0OP0k.34Ab0Sa823eIp+lSDm.RA1RaekpJjgM tcsfk31MKU0tIJT.svIwsqRPD6CT6X2rn2aYqHANpGps1S.s1C5BxVVw0B07 Pb6RsMhC0LqV33FDFq309F2cPb+.AEIJvsKfQ.Jdkz1DSfpFDQacXwCjgMu0 AyTfOZOp6czdd6y1ULvSJzhP9MvVl329H2Dn63b.zapqetlLe9+bwQoGT2DD pZWa8i41XZaKZAqU682hTqCkbyGfomKJL8b3.TiJWAzfqKcWzwurpHoHc5eD MO58SO5zjCnENCvSi6CTm6cefHgeC2GvoODj9NLR5iHTJDg3k9fQJompJJUn xR9vSUVUhClThaHR4gQFqPZKMxwSAHpopdAtry5UkvFw+Pk1JMr81Iac2gRX lIzPDudZ7jM4Iwn2CyAMKoe7G+F62y9v0wOOWAyGYid0OtPFDfnJHoQ7LMt1 T.ddPdbp2FRXkjcjJYV3TUxV4lG7TRdId7qyiVmOh5i1Dm2RXNaTETHuKT70 MOjgrMatMqWFNNsslkBlMt1yBGKXgSBSBy+M2Wft.r077KKVm7Xnb7wHMFCk aGCURajfMT.WlNH0x8nVw8P6v8D+h84eavVAC7OlDUjJGGjrmW83hUkRIJAT ZrhudZXqf3bJ901A7VN23v4ShEODw1.tT9BMcT42ZCbVIdGh2N.S0Ashcysi lc6nopDjCO9Fbvxc+7Lxffg6F02QgEgFLZfuKQhUV6+LTYiLxFT8JHULR98Q BkULIdaInCXdM.6UIxhhaFc+ai+FYosTYpXdGrU.tFz7Bs6kCuuVWrXNhwR8 YkfqXa9kday3qTNu7WJ422k6psy.orUNYWOd10yij9eR9IggCjhTd99XBq30 6.WyH+BESOE0RncOrfdgz9wIoP..AEP98OcP4mLXuk0PGSzBQttJenQpXLgt fiI1YcLsCInhwTvYk2sCInlwD5rMlPPFSEg9+Fm2UL9MfRfmlWdxGxXhddkm fLlrTDmJqHRJW9GNayKNxgpGfQZwv613bTLfgj24UOJD0CmWodHiH54cHAhJ 4eDKDEu3e+o+eYiLke. -----------end_max5_patcher-----------
a-hspline3d is a very nice object.
Volker, I put your hermite (in your example it was looking better than sinc) algorithm in mxj (mxj is much more manageable to put severals "smooth-func" in a patch), mmh there is still some situations where i feel it be could better*, (see preset n°5), but in general it’s not that bad.
I also managed to adjust better my slope-algorithm but hermite is really better.
+ some weird curves options.
* i don’t know if there is a way to change the "smoothness" of your hermite algorithm by changing the numerical factors ?
The thread is 3 months old, but I thought I would comment…
I wrote an external called sa.function a while back that is like the function object and has multiple lines and bezier curve support. I attached a sample file with the curve you’re looking for. It has a lot of features and requires combinations of shift/alit/cmd/ctrl/right-click to manipulate the curves, so make sure to check out the help file.
The attachment only includes a OS X external, so let me know if you’re using Windows. It’s also only for Max5.
I also forgot to mention this:
Getting the y value of the curve requires solving an equation and sa.function has a couple of attributes to balance accuracy vs. cpu cost. @iter sets the maximum iteration the root finding algorithm will perform until it finds the root within the specified accuracy. @eps sets the accuracy and is specified as 1.0 * 10^@eps. So @eps = -6 (default) has accuracy of +/-0.000001. This means that the lower the value of @eps, the more iterations are required. If @eps is set too low, it may hit the maximum iteration set at @iter and may not produce the desired accuracy.
first of all, your sa.function is really great.
I would like to use it for my patches but it can’t be saved and recalled via pattrstorage nor preset, I’m looking for a workaround.
The second minor problem, for me in a selfish perspective :-( , is it gives only the interpolated value of the working line in multipleline mode. I would like to have sometimes 1, 2, 3 or all working in parallel, I’m looking for a workaround too.
If you’ve still time to spend on it, we never know ;-)
I can’t believe I only just stumbled upon this thread. Toshiro, this is brilliant. Thankyou so much, I’ve been wishing Max had something like this in the distro since I bought it, and yours is so much better and more flexible than I could have wished for!
How easy would it be to compile a Windows version too? :)
I just bump this thread hoping the great Toshiro will read it.
I was waiting for that object for ages so thank you very much !!!
The only problem I have is the same as Filippo : it would be cool to be able to use it with pattrstorage or preset.
For now I do it with coll…
I think it should be add to the toolbox too.
Once again, this thread is being bumped because of the awesomeness of sa.function!
Now, my wish for christmas this year is the merging of sa.function and ej.function…
(Emmanuel Jourdan, are you reading this?)
Hello again and I’m so sorry for the longest silence! I wasn’t expecting responses and I’m also not very active on the Max forum…
I very much appreciate all your feedbacks and I am happy to announce that I have a few exciting updates on sa.function!
- preset now works. I’m still working on a bug with pattrstorage… I’m hoping to have that ready sometime in the near future ;-)
- You can read multiple lines by setting the "readmultiline" attribute.
- You can "refer" to another sa.funciton and save the hassle of duplicating functions.
- You can undo/redo (!!) most editing. You can set the undo level by sending @undos when creating a sa.function. Default is 10 levels.
- And of course, this all works on Windows now.
man toshiro. complete awesomeness.
are you sure cycling74 haven’t contacted you yet about including this in max6 ?!?!?!
anyway, many thanks, i realise what a huge amount of skill and work that is and sharing is fantastic.
Thanks pid! I’m glad you like it! Cycling ’74 hasn’t contacted me yet, but maybe they will soon ;-)
Toshiro, you’re an absolute badman. I was just muttering about this in another thread. No disrespect to the other java-based bezier function object kicking around (I forget its name…), but yours is way more responsive and slick!
And don’t forget to let us know when you iron out that pattrstorage problem! Still, now that it’s preset-compatible I don’t need my ugly hacks to dump it to and from a jitter matrix.
This really needs to be in the standard distro. It kicks arse. Maximum respec’
I’ve spotted a small bug (gasp!)
If you alt-click to delete a control point, no bang is sent out the right outlet.
I cant get [preset] working at all from the download in this post or the download at http://cycling74.com/toolbox/sa-function/
Max 5.1.9 running as M4L on max lion 10.7.2
Really really love the object a lot though ! However the issues with [pattrstorage] and [preset] are really killing it for me at the moment :(
Edit: My bad – got this working with preset, thought id closed max and changed the object but it was still open in the background when changing the object :p Im using the latest version of the patch available from the link i posted in this post. Look forward to seeing pattr working :)