Open rconstanzo opened 2 years ago
Actually in looking at @tedmoore's handy documentation for fluid.ampslice~
(link), having an interactive overlay would be good solution for tweaking things.
Also this tab is super confusing.
I was staring at the blue square for a while wondering the significance, then thinking it relates to the text description to its right.
This should be, at most, a subpatch called p simpleKick
or something so it doesn't distract.
Also these steps aren't really a good explanation. Step 4 makes it seem like the solution to the jitteriness is to add a bigger lockout, which can help, but better results can be gotten by having appropriate (or better) on/off thresholds (@onthreshold 25 @offthreshold 0
). Basically step 4 is teaching "the wrong lesson" IMO.
Lastly, the delay~ 44100 1
is super surplus to requirements here. The latency of fluid.ampslice~
can never be greater than 0
(why does it even have an attrui
for latency
actually?). It also makes the patch look like there's 1 second of delay compensation being applied, when in fact the latency in this specific example is actually 0
.
I'll let @jamesb93 respond to the Max-specific stuff, but I'll jump in just to say that this is really nice:
Do you have Max drawing all of this in real-time? It would be really great for teaching! Can you share it with us? The images you reference on learn.flucoma.org (link) were made using FluidWaveform in SuperCollider, but nothing in real-time.
I'll let @jamesb93 respond to the Max-specific stuff, but I'll jump in just to say that this is really nice:
Do you have Max drawing all of this in real-time? It would be really great for teaching! Can you share it with us? The images you reference on learn.flucoma.org (link) were made using FluidWaveform in SuperCollider, but nothing in real-time.
I think it's just overlayed multisliders so its definitely possible to recreate. @rconstanzo if you have it I can incorporate it.
Pfft,
live.scope~
> multisliders
in every possible way!
But yes @tedmoore, that is realtime. I want to say for that screenshot I did some smoothing on each of the outputs so it "looks better", though perhaps not as accurate. It will also likely get a bit messy with getattr
s everywhere to translate stuff since fluid.ampfeature~
doesn't natively output the actual curves.
Here's a code snippet:
----------begin_max5_patcher----------
2622.3oc6as0bqpaE94jeEL94DO5JH5SoSaeqs+A1yYxfMx15rwHW.mK8Lm8
u8tjDXC1.AaCYm8LMyDmXIgWZ8stKs7eb+cyVneSlOy6u38Mu6t6Ot+t6rCY
F3tx2e2rsQusLIJ2trYoxW0K98YO3lpP9Vgc30xhnhhLO8pUEaxj4azIwdOk
nxKjod3pkuKpX4FU55myjKKbTkKlidviiCmS8YHFCKBYbJlvevC6SLyQfW89
sxOA89hDYQw66jtGe1rGJ+8vRTw1cDrKejPqnb59spT3IsLA93ftOO6nTyf+
482ad4gAhFK1WTnS6g8vDKOv3gVVgU8Z2Lzhnz0syLjizIKZqrPl8rLMZQh8
IQCmQwWAitJQCeH8vnDtkQ4r.6ePmI4Voy1FYWreexxNYerXjXexUv9ejVe5
kozS3VThEfmBsdr+Dq02AZrJYuJddz1c4Ipkxe38zpn7BPTsa+NOLBc78w5W
Scijmne83JpMP0RfgpCtXN795tX3U6hDUpbodepcqP6F58oFzkF59Cw58gE1
GVmqVmFkzMZeI9XtFcuk5sak.ecJbWrQk6AVUdxnka7L5gJvcjzSVrb9748n
8wXNqSFcd.iDf3gk+H.suRKWTMDoNyRt.lEM9FZ0znFhcVEmFfZwNqzk7MXm
glX6rs6SJTfwTrLqhR4xBfTvpbaPK6ETWX0lJOi6bM6h9fruC23oZmwOL8h0
K0I5rJZRdnwKspob8dqcLbCBFJ7ILeDKDjgXFyRTT.lfBDBTX.U31Gj.FEDw
BQ.3f0G3wZasSrCqTv1nV98TY9zEWj5hKRcZhSPbQ+utgE2nVuYGr1UYx+yv
rW8spnXt+bN0G6SoTPNKJiKJtU60oNYPKGczV8Ek70WT4pEpDUw60oEDBCLj
qYBW2HJQu76x33rn04KyzII0kiKgHqeGh9o2udS8wcR7Mm+.tId47IbTIW8e
anmrX8VcbyQzYF2O0FoMkba5LX5bPNQnX6a5WPUFT8n4In5VKIhX4VcNDMOd
Nfv.Am0R5vsJMQsmwa4nQYqKK1Y1SqTfIBnp7uUfqlG+mZ8t+wi+q4uF8hYv
mdQah3iL+aBLE7+Xuea7rPLwvx2p0Ea9gMQH32YerCbjy5fLf.Wmhu0At1Ca
QGsZE5fme7GeLKBN4srHlcSrHucVjbvkaZQklO13dtOcFyhOnc9WyT.IuBLI
Q8hbd9R8N4ATPkB9peIxZUhQyQia.7lwKxA8sDWg9D34ORMmRXcvIZYArWOI
hO3QFBAGv3nPAhF9vfGB0UNDivmXcW6gUnZFv2kXviNkoGQMSC3b8AGK6pfn
1VLHL.CYMJfRag+AaHNkIBP9g9HeHpDxNDhiEL3WNiK76MoC7+Wu4KmdCeBz
aP9fZBApjhQAnWX0aBIBlOm.U7yYDaBrvFSf4jPLjSafYnwUwoCmv1jq+gGG
bwhnCveLwUgwsEwgEzaDmeBti6GcLp51W5AfBbIzWBPP76aCgD+hfPQE53EC
HPNEvEh4vE7IgBAwkBOy+1.oK4bsFQaFXMps629CuGCFPVZTv+Jlfo9BSnCj
6vFDhaiyo8lOyjw46fR3LEv8wbMXsLmI3Pk3HwgR13zaiqwWBWWeK5JX4tCL
KXT.Y6+hLKWoSqsZvE9tc0F9tZOhAg9cmScwCGFRk5FhdXnLooFulerlJM.f
p.Po8YNCw27YyN9w.EYkktWcPbYkUkaIqTwX.muKZo6gMBupoOB8gkw08cQ4
4VqKJmeDtMQOcE5Uq1HPHrSlpR2kIykoPk5ka9CSGKWEsOo34185zb9UkawV
m7DuPUKYclJVmZ1DMDElgqH227vtjUZvL1UjFsqkGFzW.boiIyAlbe9hnLa0
3tSFgTMYgVmzbpCOWhbUQ4z6ToomfhE5ccOYlZ8ldd1EZXxs88YamI+48otY
eFTJJdNO5klncQTRRosayO92hRUaiJjEJmHffNL4YmU.t4LuzxLwfR9R4qpX
WNen5JCvxU6pThlcPJGqVKyKZNVQjq96iijW7tCzqMz9pCR44BIj9IvEMW.X
dnxKx2neMubgUJZ0AfiWqYci55NBaLduG59I2ygJAx.WF6EsOVo8.mP0WViK
hfTahVbdF5xqJDRPL.Yp1HHzWD.dNc2ADkVS6+Dmig0oYawC65.4uqJ5PoWm
I.fb3hJ8ZgEhMtA12bbRL7GgDAegQBW3Suk6KzqVcsvA1k9cIdD7Q3A+KLdv
J13YOPQOyMmKydUmAiTcNwWK.QEVkDh6.HwtK0qOHh7SFhZjt0I2pm2BuFZJ
soP3RjVflyEBpvmS49Ly8Z0VkZ8Tl+C16uvb4CcfST1U.TjOGfBReAhyG6Yt
bg8xzku+AfFA46NjZ5bFJDwHTtfFJXTysdhFHr0MRcMpT3OGjxEuBBTCoZ68
jy7i48Dj9GjrTt7f4m2SPJM5D852qacNLcQrveNgD5GvIgjxfXTe5vP0X0RS
9CQYu2I9hC95huKixWFEe3.55rRIWgRTPUiinDJS3SKKLtkiOXPUK04wY0YU
SSLJYo2vvAKGSO75Mw2zt4aT27csYphY0U1KpzX4a+L.qRyqKCs5FmDiHN0Y
tMG.qwLRfaCMLUqP7bQy7o6.4peXCnqImfNfl9qPnWkoiU6Zx.piZXrrtY91
Atb89rkUJCU9E7Zx5P3fBU5gh++1QTvrvAI3t3cQv.2E1sKtwBGs1AYR3LSz
+gwYmCAew4L1HwYtlbn7kId+hGv9sEQ1WbIA+Rrd5iyL+3iEbJr6ot6hB9gF
hDLDLniWYXjo6a3DRP.OXRYLw.YrVzEmRQV4fUGL6LyguE+r6fFe9P6Vle5I
MeQGH15D8hnjSNEq1Nur6Ot4Fo1GMZQtNwzunoZETD.THnNq0lokzykf4Z7G
nRp4gnPlnVJs99mVDdiBv4Sbej1EWWlzRg1KStU+hz6u+2tXlFQmaxoff4m2
kZAzdY6veNsOKHqGvc10Zax5jvW8c3D1OG+S3hM+UtoZCGylpECtFCnPg6BD
Q36Z.gRW+g7PN3aT.N++bZi1O5aTvJYj4lzFouSAW52YfRafP54WoMTF+M+M
HfMweAB90oGhpWpZKMly4FlWRa4LB56WipsISg8p99Jh4vzd+5XzeSOeXJCs
JCycryqao2YClfuIY1MQyhVcvyo4CVBRmkGn4Kq2wz65HGPww5SOSNLXBQF.
gNY2bnKnw2Foo0KOoqD3oi.SZ9Rf8gLYX67HZ5g2S1diDoGDSiESgj0R5OEI
6ff2IQ6EiF.oMM6WmMK+EQoOBMYigYxP3HbiMyHoqFLDJ+Iwg9Sh1xmjHjOD
sRBZLr7FBk9rLwYsKyHSOgwSgqa1PzSCCGAvkQGpWrQ2jXXjtY7osp3cZHe8
7pq3fYaCDHoQtOxWvHlipCy8gpFCfxPZetQWZMj.srwvTHLbHTxeLzKFhG4S
b1LV5EhgR5QOLzfHMNbR35g.3MOM614ZWoGmzJuFpdRK7dR66ddq61ca6dZK
6ZOU3tZU26+y6+e.1N42y
-----------end_max5_patcher-----------
Here's an updated version of this test/visualization patch. It's a shame attrui
s don't survive getting wrapped in a subpatcher, as this version has fluid.ampfeature~
going into a gen~
thing @weefuzzy posted on the forum a while back to also get a gate output from "ampslice":
<pre><code>
----------begin_max5_patcher----------
2467.3oc2Zz0aaii74jeED9gEYAbcE+RhpcaQObub2CGvBb.2KaVDHaQaqsx
hZknSZZQ2e62PRIYJGIGmObSty.wwZFRNeObFR8syOaxb0Wj0SPuC8anyN6a
me1YVPF.m077YS1j7kE4I01gMoLO417rZ8eMYpC6etMIOSeqE47j5rEsHTUY
qxJRxykEqzqczHXVvTzDc1hOCq1u2Nvs5boVeaozMnI0Yqf4MY5v+x7WZ1Bc
lpHo5VukogdZ4lRkYkvDC4bHyRsLnZ9e7FJskCKSpR1H0xpqjEIyysjucBaT
ox6JSkY5EqWnppjV56Ogkp7b0MqxUy8XgVjEa2jU.BoUGha.py1Hq0URXIaz
NcxxRU0ljB8vTZQdV4ZY1p0ZCTQbmPZYU81hrhUFLLVPmfBz.fdkY0bzJhXL
Eb7Lt4ar4gXPc0wA.G6rKVVl2.MMQmz3bz3c3XmNWHOD.pj40p7sZIPeqHN4
uqJp0IEeU8lesBfVIS+2fQTN6ljqaTwVoOC7Y.KyCbJeNqvYkS1lloLP7FPi
Cv1v3f.LgEy8vkqTkdFFqPoJzxB8U.o0xVI1W17lUKnue94s+.86muCh86ue
9ziLBagZyFfzstbZ4WrlrIWmUaB09pDoWa9qRVuVkmhRJRQfNxXo7lxBUtpp
MniGfiCwSG7WXOitWTR7jNWwBcMPUqnRmcPO5A7yHT1LRLCiiBYQAbQjfNEb
9Dy.hGKvXZPPj.ShmhHALiWHAOpWXviPaJ+ZZxhtjUdBHmLYHQgbegLLFYVL
gKvQh.2GF.jaQweVY87rqkypWnJkc7+cRUNOwDq2Ry4q5Y1w7PQHIhwChEAz
3oGMncRQ8FkxE61pXRf7QWKyyJj8oUDgyhM9Tf8jQs9U1khQwzNbVOOrna4c
K1yOa6amwsJuJPWI81GBhA7sV20GHCxATcMrqiwEe2dIC3Zf4TqC.N9t90zv
vYbgfP4t3.dXD.z3rOhuB9Q3qrYatNqNOKUVMpuhcyyw7UHS680fpRF6X14z
wE8V7XvRwBCXwr.FlwrDHHB1eNRHBhinBGMAqIkgEBA3uDE1O0jdMTzPgrtW
9FHoGX1.EgiPuwsm1daicTooNrALxf6PlLxqUSl3QZwvf0IhhEgh.hHj4ENi
i4wbv7HHj++2F8vSAezILiEQwvFhTH8UXjHznbEj3PFiJvwvmPWVNBAGFFED
DFhwlvjQ1tlFOPVt6SW++f44Jj2.h6cpMZkDpSSWgTKW1UXzgCp5EX4qHYSd
ntkwwVWOpXFgSvfjGa+DZhNBD1ZZHipDnm.kPwSUGfen5.Jlc.cP7IPGLVUx
+yknaUaQ2.cOgzJj9FYxmQK2VA0LWgVmbsDkffJ2+LJAvuNqFkTAsilKe2kE
q05x52812lKSpJlsLeKPijYppUusRtTVIKVHeaxlRHaI7iVB6hq2Vn6U7Hn9
AlKwz41UCNBOsMI5gpsYg1nPbHCB3BEPND2GrIJLf6rDOqkhNpGWweg9jm+F
vSvydAgH1rP3CG8IPzrZN2wA.sRPnSN5C.XvpQ3SdbafPih.lhC0v23kxhb.
OrWZuNCjU62FroeyqkU0MMq21K4jjxROv8ZhDzw+gaCAwzNPYENP7NPURn0u
l4uCZREHdZP11V4ZT9KgrI6VFEridw1LuFTAqcWG6fc0zfccYxB2jSqKmAVy
1EXhWCbMNaLaTr.acu3gdapXJLIWs3yxTuhJ.qZorHqvOTnG5T4xDnBnq50e
IY1f3W1vlChr6jB9aUYFmllgrpJKUUXXhdlCC3VxY7HrxF2WXrinHobfICtc
fdYDjliJXa87jJi0poBKRKRsRk2GU27xkK0MnKyJJ1SKpUkiirxbHPiidtBP
t4PqsES8UaKbXuBbLzWUCYI6Otj77lL.8W9ujTjsIQKMmjkUbC5P5pxbc8hJ
UddO40g45AvjBN5Kj2jk5JfJv2Y.FdVYqSzjNqbZ1JYstOLcxp59Pp025T5d
f1NuIP9Jyo0k2bLO6F.DhjUqgjX2T2LvVGMeEfbjS9ZW5z8N0nwSq1O0Jj3A
Q7w3k4KzG9PI+F8DLv1fXlvsaMe+Ldisawdmt0zGo3t.RJYFoGwFJ5996D5N
83u+RNPBkCpq5kG4W9WPzsM0X5GmbXEJydPBg1h7Bis+iFSOnBk3gYQ6gL+O
.WMU0sH6wMdQvO+dzkEsvL5rsPsG6AFRrd8+IIeaK7KK9USKd9U+cA1gpAg2
1xWv8Pzem4KXLb6Jls7BKGg9vGPAne5mPYEnO5SACrNFA8K6ipk0sy+mgk7a
WVfPfx.i9.B+dDBYdd2nf0WeQe1wvIZynZXDyztr36vex7ZoaIuTCLZ2p7QC
o7Vyte9ll41WtvN4Ba3dOMzO2tzszMnYt6DWC6ZWQPfHvS1Q9dzjmwHlCjf.
LE3IGLhYrnE7noOBNFucWo9DwQj7.+iQUXxUhGIWI6wlqzIrrX9SJU4txJLs
ALxlEVpavOrZnVssZQqUsw.h5yHv9i5rhthr9stzhlwcTFgGJOvORdfch4A7
QvCgixCOk6oYjdhf9FyRmA8ItTlXpMGZPZMTlVILskUx+zTiT.5SKgdPqPuI
x7SnlKHMb41RDc2SopaJPTA.oNWcSCdBIfuCfcHFPC1KJ8d6Ekd+seMXiWDx
irwKRDdlfJhCYMMdI3.Ptqlj3m0CtybPHP2Oid7G6tABXfN6VmYXfKKhbT2Y
7wpNBwtjmALysuh4A2Smm3enJ.ia0Pp.1oPEPhmQojPRLycDFzWO5icwcCoM
3mBsAmMCaOXhlqVzd+ruxTGi4dDdJTHQhYwwQBgfz3dvd8nP7ypOjBQ7bpPZ
NxuW0JD6dZCoIhOEZhWywJ8agY.UBkbBTIz.Jr8Z.GGE5NNXxqHUx.WJgu9f
eJbQdcs+5P2MkuJH7TnB9gs+ZYBzPdqDLWUs+EJ6t83luF6RLO7Mg3V064kz
gwBcGoK0X6oT2ShwuEx8eg+ZeNoXUyY3Fs6JQ26F368FnPr2B+w.xW7KqTkp
ptSGeF2S2aGT+FGclh8aTpwfbmFjLupiduUgizkHo2f5TxC6EbrjlvNBRS5S
50YooMGp9Si17WPZG9BRawKHsie4nMkbDzlwOMzl+BR6vWPZi8O7kii1axRK
UYE5lrYzPgMGM7Ol8drItSEfadoABIifycjMOd9l8j4aRy0H+CkuIOBe7mqT
4zWvP6GAs6D6fSuFmFeJHM6XRpvwubjlzKH5YxOidLkLv7NP4mVxq6iRh6PH
W8X68BcXnwduHG68Rbb2Wfiwe4M1+E2v9RaLzKrgoZ7y+94+WV.5B7.
-----------end_max5_patcher-----------
</code></pre>
I was hoping the new
fluid...feature~
objects would take care of this, but since thefluid.ampslice~
object only spits out the differential curve, having something like (a much tidier version of) this in the mainfluid.ampslice~
helpfile would be very useful for tweaking the parameters:Having
fluid.ampfeature~
helps a bit as you can now see the differential, but in a way that makes all the parameters more confusing as the relationship between the parameter and the differential is not immediately obvious (rather, it impacts the differential in a way that is potentially counterintuitive to getting appropriate settings).I may, for example, determine from the following changes that
fastrampdown
directly controls the "offset" of the differential:This is obviously the case here, but it's not "what that parameter does".