Fluid.bufnmf~ "Machine Learning Modulation"

Following on from the “Machine Learning Filter”, here is a modulation patch based on signal decomposition.

It uses [fluid.bufnmf~] to decompose the audio into 5 ranks, and then plays each component back at a modulated phase offset rate.

It’s pretty subtle, but interesting.

I want to play with this further and make the amount of voices being broken down dynamic, so depending on how many channels you break it down into, it adapts the mc. signal path, but still wrapping my head around the mc. vs mcs. stuff.

Also want to add some wet/dry for greater control of modulation effects.

edit: added delay, so patch below has that as a component as well.

Also some room to tweak this into a kind of tilted “spectral” smear, where you play each component at a fractionally different rate, so each component drifts out of ‘phase’ over time.

Much to @tremblap’s chagrin, the patch is Max8 only (due to the use of mc. objects).


----------begin_max5_patcher----------
4255.3oc6crsaiia84LeEBFnuzl5kWEE2mRaWfsOzhtnyCEECVDHaSaqczEW
I4II6hMe6kWjjkrknoskyjLHFyXqPJIdtwyEdNh529vMSlk8nnXh2268Iuat
429vM2naR0vMU+8MSRBebdbXg9zlLOKIQjVN4VSekhGK0suIN7IuGhJW6UtV
3kGVJpOk3nTw7rso5yCU03lbQg71DVFkkde+mQX470QoqtOWLuz.gPDkMEbq
Ghhlx...Dg.L.V17sd9bUOX7Tf2OWcGhVngrrY+xeFFTCMoaShRiEkZrAtqw
rsk0sBTM96e3Cput0QxRp3A43b.UIonLqHLYSwySrfVXDZJUA7.ENvL3HZ.L
gcBXRMszzT4SaDlQbRQzpzv3I25MYYbVnDN94y.mii9hX5hH08wz6WBySCSD
c67Sne1AbGQHJrl.0eGL.t6u6NkKGnRQ98hzvYwh8HAmMcoMEo5bJB+hXw8g
kk4Qy1VJ1cTQEooh1nP+3shrk0MW2dansXcVdYCM5GDxIMUnTmSqFh.8z21z
nxhxmL3LpmSHNKckM1PmSNQxQ02HfT1yzsVJn9mwYZfb19FQ5Bu0Q1DEfHtR
Tv2mNEPoTBjyQv.lpIpsoD7SXFAbPN+YMEXno8ymlql0mjkUt9YIfCn5urf8
Abyje.R8CzGYCio8hw3SCiS1FWFMecXZpHtRevnSCRWId16N0fT3Q7tKNyC3
c25HOBAB.GmZzin.BxsQYBFCYgqOkYgZl+yFxfmMBAiqQWFNPKV.A1P99MMf
95f7t4nvBwlx018TnGMERK+moe.H1U1Qfwx+nCwZNTabjYTRdDzz+qHZ9cRm
d1XQl1mqQDLWKSW4RGneLAg+JgHEkQwwdOjGtYiD58RdxasHbgWXtjSsvKYt
WQ41kKu0qHSxPiJ7j+S1xFInexBy99ZmdX96qqCxv14xjuRDGzTueRxnmEN+
ye2+Law1Xo3rW31EQY1X6XMmt5ar1jNF1B0VlkVtLbdGm4ZgtX6xzpqtH5WM
tEot48RDZcxM9H82EweQH04ENYDIQvod+fj+mrIq33jFBcGkQoT6ToLzWiTl
DQQQ3JwATFoufwJbwB4fELkP3XBH.UoVOfVGXvvl+vnwv92nZpeiWYThH+nr
dDkOEsmkLhUmdGPC+oirsAMIjtWLMKihEeQjWHCSu0M5lIR0hsZta3NIg+Rl
9FEzDvgDBMMsKhlbwWhpu9cgwDlKIPkRpy1biH3i9jcwsjjsPjmtMRCJ0QqT
CRZlgRzsXS0TEMOqt6cjbp11IDni3DSM+32RIqjYuJNa9mEKZCxSxjwvDk1d
kK5z8BwxPouS22d5l1Okd5udxbuc1L86ujuK35alrJOZQVpBH5vITMWObRqI
ZgF026PF8YjFtomKVJIIIKCzYgDI2VLKLWwnl0MfyIkYYwc6p45hEKKq5VZ6
LcOpnz2fg6LOZ0ZKW6rLYmI1t25dJjAIa58doLQ48pP36ddgwwUyX6d6eLLM
JQZLSMqsJr35NMKzv5h44YwwcvWSOeomdVHkwmKdHZgzGW0.0VXPd5QapEhl
zvkWDsRTT1ssxvUEcaoYA.Z0z1YUyguuTjrQYRt6IzYo9ZOgsstsNsaSGW+A
3WHJa2eet6D.mhkejA6GDfBzZ5PRicTFjf7wbnO.R8QR+bOHB3ChBF2dr5yz
2vpBsp6u0pfTaCXjoWRGClI8OzKQ9GEdS8RJ7taS3hEJWMQxXjU+uC10m2jm
BIV0lhBy3PFI.P7CBTgSZ76fNLMlLLMl1piAz4M3JucnqFcz0M3Zy8hwf1l9
KYQodjiIMy.SC1mTSjsIEmwPNM..XxVkwqAOlzLhbFRyziRvZ++WJhm1mGu6
VlkK0k5sd82mj78xqxNojBLVkM+P.GidAGldgbR76.5kYgeGcBkFtbB4MHMt
46gPcevfnN37T7MKLc0jNCWcbMsMgnAizEhGa4+0KFIBxfmDMB9JfFgFQZjA
dNGqqLes0UHDhqZxAxG5LzFAtT4mc9rpr2MfyJZzV0e+Dshrs4yq4Y0RBdcQ
To2WkQoMtv+ocZT7fNN2+jgBvo.EfqDTnbYxInPw+uZPAwUnnFbuJPAphceT
nfb0gBjqPA5ZBEXWgBxUBJftxQPCOGopw5kEnJ8sl3bsj61SJdrUwYyBiqh1
pwC1dBW67Sj5PKqH.78H1TJ.d7kTxj4npDINvxqy3W4UPdSXpH9BfU8xsahx
mzyhfYOaNyxxWHxmmEaV6oOoC.u0WsWhUy4ZA4qZUsDTs+aoSAUqLBqI79Iy
V0YP4beYX.DLDyPTB+VGapM3sIOaSVdyZNMkdF7Bofeo75sjrQsGVlkZEQp+
t2kZEXqRL.iPNXq71Z7VJ1RuYdyNJxCQ9SYbNOfw3HtuNMLXr0kcFELFUjiF
eu8Jf2Ki2FsX5rsKSSV9r2c4hhmRKWK+aujPYDt2kGl9YOp2cQRdnVOagJHL
u6dHJUEQu7OPDu6VmsQ+WHpuLvtk5f8k9hy8O0zcYHyHf+TB.Hu0DYnd9FeR
46uXDcnxiRUdb9T2gxlgbh4bYWdUFyNp7kuzYbo7EiRCnbrR7haMm9D1qtjZ
HkcVJxe93nbO4wou4WAVSzADAGi4WMA2e9h.GyVVUkrgNXEgnLS7Vvf8BNqW
UqWCaZjQ2lV.gAnRz.SQbhZEtbsow0l1P9IUmS9Pu0gy+7SdOjk+4pb2Wl4s
YaoJq8oqJ7T4v1SpGby5PUhZWVJ7TS0UKDq476UAG1V97ATkb.QUqN6kOeyp
.RXCIoCtxdioqFPMMZnJ1rcm8oDqp.MQGTqBl52rchmzLiJ2o+ocE5XGLdWc
4dMqnyIc.I8n+wVknxUrBO2mltGhtMoBJk2X0pTn9E0ZMl5ojPcqhOGZHqK2
S3XTrmEyy1HrUXy9FgBZURIMq5DD2w+dUIB13mrR8Er2oFvSwL3HV.2qxyx9
h3YiuRTUELlswCdx03CRW2EdTesIh.lMOcfvSo7N8OdIdehGsWkOezPmmEVD
MubaZjxtpzTCoIImKyhiydvDsrJmjYcx1pN8.okyyxUDp8ylthPKRWzxF2jj
hIsVfPY+Ekg4kCdF0V0L.XSz4Y4Qqhj3YrHckIsrJ9iLnKoqJLL2GinAr.oO
J2pRjw7O29VVesMHCD0JmtZSHsAm8u7MQRIiAv2+21v3nxm5AfUYSonLWHu1
padyZbbV9wJ0CXaRK2X9R5elVSuoVIPCUQ9P3X3V9E7PHLv7V4MbQh1u7M4p
51CLUpZYxwsZCIzoH0GN.f4lHSfH6OQFffWiEf9FoiMO6QOdsE6ivFNs0Bql
0ewUQesUY0aScFwqrKQrWnUrSQBmNRZiGShxHYBS5qlZBhSlvXf2sf8tErqj
ErqqXd0iVfSh4972EyeWL+snXdkSdtIkG7tT96R4uEkxq8yyIob76R4uKk+x
Jk+cpvNA1BKM.U8b9AlBUeHT.jSc54CANF4M55u6..ss6.vIXSVncXyA.A9V
ayAX2SF64s4.PceyA.ZcyA.NNaN.tIQXa1.AYdXncXqhf+skzv+d2CL74ILf
cVXvtjvUbWhPstPqDdVUHVoQnZqR4vppuiLvo7rCiswmiRKq+YTKd.ssTkQ0
iiwDU1k6lxMp87lCe0U3.EhX23tLechxIXJnoLIvVWD1S4og7n0fyXulj+wm
O9hQ1KNSrtjr3WSa2CCi8IQOtH6gzm8fNrOWXx5.25teB7sAd+GriwUFyPR4
Ze4GFjQQ5RhIPEwhU7m91f.7md93nOjCkg.H+fXDN.IE+CT55rh9j2FnuJxj
r7mUE1R8VfC0ABReIfxtd.J6sAAY9SyiENnJDEfmFn9PIb8ipndKfxpLA5sA
EvECAR7cJS8AnJH3J6.1KQvfWSXu3WWDN2A7L.q4nlnXICrpLDzWmx9Pq8xE
CV84VlUIU7qJsWm+dzAD.CLVrcXm4.hd0VDqpUXzAzLvTO7L6tbCdiTop9v5
.m1uTUCzqslGGNvCLBg9d0o5NePIs08otXcT2mIxd8DvTPzA90OMLC+Lw3ui
Bz2dDTGpBzvEXZDVcjA66xTTPbGJIV4V1s8b.b.mQfm8SFhpTbWYp4116yQq
Ryjzl3n4etcywhUgyepC3dFA1uKp980Ofm7hwugp8+hA1Dfdqw9QnuMX+jWN
1OOf7sB2mB91f6idAm7CLOzcr2hJ6IuyuOU9Mihas4W9ligy+1fgCe4X3TL9
sq2bb72f7ac2c2gQLr+82uBpDBNXeJf2d6qXfsnffNmSRzhMYRPqntXZwlk6
Fd3d9JBDbjt7UaYtc6Jfa1Uf2umAhdzUDU8T2raCYX.LkaESwU6j2pc3HT2U
0plJbXeWJX66.CRiafKbjBbXfniv3PcXbX618ZN6wggbbftTDh4BGpy4ra+Y
35OvvAFZvkMzv1axJCQbAiA0E1dSkYns3G9XMRGSCgevXMRGiy4iGqQhbTYj
wXdslaeTQBj4jtnQRysQtLRnKcjBbPjPORWp1JerKZqPi.exICJvwPQuS5mH
ivHQbw1E6pnHzogFBYWC8+DWHvnwP0Hl3vHQFCUiXWrZq2GMt7gB3B4aTPJG
FH7XLQ.4h67psa8KVeExE4dxX3dExEcvHeadtiMgTfH5enjl+3RAMWzkxFiI
fHW7X.OF7UmlTbUbm0ogFhuFZwQNRcuT1Hzk4mzwXVCzkvrFCGWftXZXTbvD
5hZT+wXfbxFzXDbidSiwMCqWLeRyCHt3gI4hGJWTKBtF5PbZn848OznWfgNn
+gF+BLzCn4jb8GZ3dZiFIs15cqhWlHLbAKInqhDsqiLzN40rRw68ttQMn68N
tYu2uMG9tsY32qM6+NsQuw0Zd+dr2pSu6Ukf5sI0G0ubVt+eJR2ZVh95WgLc
IMyVsLJNtYQ0a+LnTu34SL817Zzoc9BT0ECLPmm.01Rpu9H09SJs8F0q4Zf0
WDgVmbAhOhQLYmPklBbmJro5xP6FK.jaFAfptOMGIaB1I8D8W.PGVuNXdy4u
sLaUd3hnp8ibPmmbkaqjrxk8t+qUESc1UeMskDaXF+isyCsw.JDwlG7vNzUF
B3y0zUnOCYnKA..jLP9atOJUIB17fNhvbDTSqPMDajdyis6MnyfRXTnIWQHN
NfaNhBkPxdElkCxLMzyADabjU1UvInQbInJYVpiN.q1WvwmBLzRecgzaNxbm
tJxMCrI+BHPldi7URZILlo.yPblFgn9Mj2v4yEo6kVt58.XLoFW5aS.VJJkr
+kxBjnrglAfAAlij2EzdI0q8KaEoFv+0FQp2GU0j9GEIQyxhWzTogW3DhOWD
GI0n8eTp6rMwX+bY14qQBVRBezu4c.V+fwfSwFttEWMLnqp0eK7YiDcybWV0
jiwEga8xz3nTdoRAc0O1VhSoIgPgiMX0oTiGOdw4pppkRmZkFGdjEkN6R79g
Gc3k8pzFW2YGtwEa+VHwAoKMOqk+.RbFyGSIKS0c+Wi2Jperv5Gp5SoKj4SL
VKZ.PtpI3U..yydH8jgvcvEsYtI9JAg+smBOc.Dfjl5LpxXXLxL2AodQyL9.
3OlKDmADpodpGrRrwaKkOFiOv8eEpMciSF5BjtewLZNfAPs9MpjhROzzcq2v
iH0IA.AiEBrMYlH+Gkd.bxfuRTDnY+ToIMpFSfs0lMJ.XtwgBED5rdGehuOl
WINxpbFSRX4XK1xuJHjIDxAd2j9ge+C+eC3mlT.
-----------end_max5_patcher-----------

This patch is a lot of fun. I modified some of the elements and manipulated the brushes.aif file that ships with Max.

Results below…

https://cp.sync.com/dl/6ddfe2d40/bmkkvfnb-vdve9xp4-tn3p394j-r7m9z3sp

1 Like

let me know when there is a Max7 version :wink:

That sounds great!

I guess you took the clamps off the modulation parameters to get the extreme sounds?

You might be saying this a lot…

1 Like

It’s ok. I’m patient and will port the good ones for the people.

I enabled @pitchcorrection on groove~ and changed the phasor to a rand. The offset that is added towards the groove~ objects is modified to have a really low value (0.1-0.5).

I wish nmfing was faster or had a real-time way of doing it so these kinds of separations and delays could be done on an input signal.

1 Like

Ah cool. I still never mess with the @pitchcorrection stuff. Worth having a play I suppose.

I agree on the speed. Or at minimum if it could happen in a lower priority thread so you don’t get a pinwheel while you wait (that way it can happen in the background and then be ready as soon as it’s ready).

Look @weefuzzy, some other people want unicorns too!

Would it be possible to have a non-pinwheel mode? @weefuzzy @tremblap

1 Like

That would be amazing.

That would mean I could use it in a general purpose performance patch where it deconstructs whatever’s recorded into a buffer then you can fuck with it once it’s good and ready. At the moment, I could only really use this for offline purposes since the danger of locking up threads is too high in a performance.

So you want 1000 rank 100 iteration fast and/or background task (non-spin-wheel). These are unicorns, and I want them too :wink: The former will happen with the Moore’s law, and the latter sooner than this, although I’m told that it is not trivial, I’ve already said creative coders would expect it… so maybe not a unicorn but definitely not a kitten - @weefuzzy should chime in to give us some sense of realism in our end-of-year wishes…

Maybe even dirty NMF, 5 rank, 100 iterations on a short buffer. I don’t know enough about Max threads and the API to have a technical say in the matter, but it would be nice to have it just let you know when its good to go :slight_smile:

1 Like

Overall speed is always welcome, and I’m happy with “as fast as is possible at the moment” there, but the pinwheel thing is a massive difference to real-world usage.

(I wonder if I @ mention @weefuzzy also, if that will make him appear sooner!)

I wonder if something like the approach used in @a.harker’s oldschool multiconvolve~ would work to make a “real-time” version, where the first bit is calculated with super fast/dirty settings, and longer bits get a bit more of the “good stuff”. Where I would see a problem is the ((probably (bad)) (lack of) continuity) between each rank as they were ‘fused’ together in the multiconvolve~ish process.

1 Like

keep on sending ideas. It’s good for us to see what are the hurdles and irritants of creative coders. Some solution ideas are also good, as they might trigger other ideas on our side too, so no censoring (but do not expect all of them to be implemented!)

You’re in luck cuz I got all these ideas about fast/real-time algorithms for specializing in percussion-based sounds and processing…

1 Like

Hello everyone. Getting pin-wheel versions of the non-realtime objects is a matter of running them in their own thread, so that Max’s main thread is no longer blocked. It has to be done in a way that’s portable to SC and PD also.

It will happen, but has to be approached with care: hastily written concurrent code is almost certain to contain bugs and weirdnesses that are much more annoying for you all than the pin wheel, and we don’t want that. The refactoring work that I’m doing at the moment has the eventual need for threading present as a consideration, but first the code has to be brought back functionally to where it was (i.e. what you’ve already got!)

Speed issues are a different matter. We’re starting to profile bits of the code, but – again – it doesn’t benefit any of us to be over-hasty about introducing optimisations. There’s a lot of quite different algorithms running back there, and it would be foolish to try and over generalise what optmisations might be useful.

3 Likes

Ok, back onto the modulation track.

Here is an updated version which has a more traditional “modulation” signal patch (tapin -> tapout), and is restructured so it’s easier to have wet/dry, and avoid phase problems.

Because it’s more purely mc-based, I can easily up the channel count, so here’s a 127 channel version for shits and giggles.


----------begin_max5_patcher----------
5545.3oc6ck0aiijj9Y6eED5wY8pNuO5m7raAL6CaicvVOLXQgFFzRz1rKJR
AIJWU0MF+aeyCRJdJk7R1tGW.ksLoHyH9hiLxLiLx+35qVbex2C1uv6m89h2
UW8GWe0UlKouvUY+8UK13+8UQ96MesEqR1rIHNcwM16kF78Ty0QK896Q9+3d
+Ue8m9kj0Gh7SC77OrNLI+qFeXSxgznfTyKBjc0GRhSi82DXdI+WAQOGjFtx
O+Y15mt5ov3GuaWvpTKYxv7kfa7x9IlZ9EbIv6WK8Fevek4MBytV3Zy6O49e
6eGyJQPgw4zCrzSuO72MOMR8x0W8ed805ebyHgH3RuOEnt41j8yCzPnGQFDE
0ajgN2Hylf868eLnAxrKXajltZENfmfg4hkDhDS.BD.CQza7DFLfHLX.pDya
eio+Xaf8YWrn3Vkw.TqX.Z.Labv2TuwF75VuzvMA65OuRshU4RD..fHDfmwx
Y2o+LKpcSATYhPQoVVLiGU5AgQAOGraeXRbIR9pE9a2V5xWU5Qz.yukXdQha
JtTXr8RfhKsK34v7mGUbU+cJnHUgCG1YME9Nir33qIYcvt3CgFRwdQkHJijL
BCsIz9sYp8FYV9sOBtJTUAgP.wXyPs+hgOhnJg8iQIq9Zv5xj7hjsAwgwa2E
rWYv6mlQ6E2dcvC9GhRuqroCTaW1x8yMLa8lEtA9q6B8iJXfG2EtNIVSDUjD
5Km2bewCZTOz+7HyX9Fw9aa4gUJFJXoiatWwjG1eu+Nsf59nfxRpEoIIQUuU
wyEE7PZ1s2FFGWCESS118M2E93Sm3YuOQcyMm5caty96NDau6cJchz616+bU
zN0OJJyhs5q+69wgaTclosZMrKn3lAw9JF8o8q1kDEUges244VtyZkN9pfuE
tN8ISCUVYP80C2lqDsnPJuN7wf8oUuVp+i6qdk8o+vB5ktzg6yrguKMXyVcW
xU+BU58urAaYeaUt9o7wUyOmxodP7Zu8Aokueq965xmGT.WhU+ChjBARX71g
TcoQ4PBhgkPF.RYna73n5t.Oiav5tBo3ZDYo9+xutw+elCloGuTAFbeXbf2F
0er2ao2l8d2t0e8ZEh3g7.l+WgHiTe6UIGhSq3trADW9Nc6JoGB.80z3OWB4
DAfvDB0EsdYvzyJAt4DRAR2RAZM1nr6zKi.5P7ukDF6Q5ValdFvjCVJpClD0
0TpyXnjJ..t5p23wfNpMeSs+2EthHu1Z2lXd7t8gjcJeodO8zOuYyOqdJmzZ
aAJo.a+01eQ.tgWODk3mdRfB1MPglPfx7VGrWQKyaYZbwOOMqeue7icx0LPm
bMnzMxGWS4tPLuo30Aeep0kFGDA4voFifSCFMkpQVNnaPBLfdW4LSuqPHDmc
oNfuxXCpa2KiU+4XLq5965HXECyoue6f19jC6VkKkyEldUYGUzWogwEgv+ki
9C7fd+pSBsdSEf9PEfYhJzQ93DUnkxyFUPbkJxI2YgJPYh6yREjYmJPtREn4
jJvtREjYhJftJQPcaijcw7oEXgdrequyNN267SS2Ed+gTqqkxyyQuFO1iQI2
6GkMZqhPraY3ZWej3lnoUD.9YDeIE.O8rI18TJIMS9AyNDpRt4K6hmKaetAG
.er0ONHebGpu5t0A6VkDYmKnuXFPboeTd5KmL9ZmZTSqsyS.okYEiWk3JOub
sNwn5ofpLEoBiHalQ3ECuew8OVgIkRlJXeBFh4HJQdiiWpLbrcWx1jcEy4zR
5.jEJE+T0y224hzFckcpVQj7e18rOVIxpJS2J33zYuSY0jFr6N6bmTFPGsJW
GSEap28d22NyiNGyCQrkboTJ3bIRxDbcjRXGl1YCVbyIvDjXwLy2ODcHb8x6
O7P7lGdw61cA6+Qb5Sp+1aiuZDt2tyO9qJFj6canRfX7ztWOXKua+VXrdf2p
+.Q7t8ojsl+BQYpg18fYL4pXtkESqbaSQQe0xP.1RB.nZPhZfdLSDoPT8Ian
G5bnoyUVWqmgxzbk5VdYcmMLFGxTghqzv3TpfJwZELIXfyzOgO2KqgR64gfc
ubRVF0qUxoMKLgCK0Qwn76TC.hfui5MSwsTCOWetinb6HyfhZCiqUOsszqFY
p6USP3.phHvTjjnmIKWuzz1qVWQJsJJbqWZhm+yIgq8hCdT4Z64.um8iNDru
G9rNgvBBHFiWldbzXFlyjzL0Yfzth0sGfEDN2d825s5I+Xk15mWo5pU2Eau8
KoLR0q2nDtDp7DigLgjjydP34MMWEE3uqcGTvOVJRKHIH1vKLZKDd1b8I9Xo
H+XoH+XoHG1hOnBHXsMr6ANcxb7Rk+Mf.KUCFyDGBSqHSEtstCmbhkgu5KMi
ZTPVGyCc0XH5QppFqpjHPDDzDoFT0QW8n2fTCNBgDJ.l2univ2M068nYPcu1
.oY4AQCWISzDEQpQTBUWjBgb6UxxtqguR2Wnk35TKj5uGZFcInanBO.ENAr9
vkn7dXedyweGpC9qK3i9ZCepfaz4UAbZUzx7nIGq1E+Mi6ry4T6L5XHLy.SX
gjQp31GJP8SuJiPNmGLF+sgGLuaSUQ57nJ.5Qnjg3jFvGRETKVq4gwbgzNWN
P.djpbHz6eGZsor0VOnygGMzqeGB6h032fi+POCHj5nWytCHN5bSCV2bln1v
vWmDE4Y+iqtzAFlCTARIFtUZacjlkY8NlzDciPj2AIURE3jyEF3DObmdsXFO
Uvo38P9mTEOoV7jN7LTgSqMvK8RrPwXDijk6mNkfJX46sDTg6XJ.n4rZ4Mwl
v0aU8imtO2DW1v4HFAWhXLFFAxR5PiGSxRVUvt4WatREFtiKyOFNiIdggJ.i
KYCFOUnszcKgb3yIUPbM4jlyzBB6ZhZoCBb1RTKjqXQKjaMqQDg0LTElcP9h
xymNFwaFQXyu3qcJHglSoe9K+75f7yh6Jma0wcDG0D2E1PIqN33lew4Jcmb0
Cz4862FifUA+xcwueiu1bwuTG0yfMMAOlbNuAHMX6jFX9RJt9XWLOTAx09rk
yMU3DVPmSpX7cV9mjrTriEedyp8K23qXhu+hYpRL+eoNUi1r0iB5whuepLyh
R0qOMknbWKjxh7EBlMFrSluPaNDkFlsB46CeLVu1ldJBZeZ6YtFd1yhn8Ccc
5EbfYc5UwZH4HIFHOlUMMmAIGSgHHUNY4PTWbb15LO3DSnMFdv6NZFctyYpM
qVp0+2uIII8IkcADfM+n27ujZlDUthKQT.lwPPfLKjQGRYrVT8aWCn8LSDOg
4nh+pu58PIGBNCAPUbJ1c9OXoTE5BVVZKrLBkd1bqDnc48RuyWtb1kpFhNT.
vTgPvxWhPx441id35NK4nWZC.DBPM+XnF.H0flTA3iDLfBfzQ8p2ZpLzDZBf
maS.El7Wdo+.fvlr6.3RlJRdLm.PXaz7T5zw9DvEPkPmldunhRBB.CUQfoWh
tJoemco6lFT.Oc9A6JUE2F4+ieZeZx1duoNTp8KMqqFaIFR3HUei3Zc92wd7
.McgzDE9bvRCyj8FKOwvMtY6d8JvhOWBFZqf.w3KyxuRlDnFgNPvjlP+zQDT
OgyNyNR2zpYgRqqmQKZKSMEmZSKbxsJhMn9hn4OQb8ljRM4gl4u3w1biBxMu
7kGyawi2c+SI6R6DyqQ7G1jAFplUOVF8uQkVKhRe4bjC0x8hRherkl75xi0Y
JGUwVuuEj9oc+n2tIxzYZ5l.JmPukcrSCv+qWRsJg1BrCjXyp0rP03ejUqej
UqejUqCr.6TarRCX4pEl4KQugNXbNgJ4PFumYZR2YBFP9ZmWIiGgD1gULS.j
30FfJO1y9m1MYpOXDYIkIkD03txRpqli.sWiBsIRweSfTmJc3PtnH0BTQlZn
h8ZCUkG.6.7Io.DSVyHVpPIBVMV9howg4Xc94Dwm0DunuuwKhcqvdwfqW8jE
TSnOFn5We3IaYV2dP1RtfH4pgImu5uLr6UdqrzD7ToVoj8pWU4FMZk0E3E.r
d8KRYiIemsJU5IaTHQDAixQHlMA0PH2S7zNQGvqM5rekejVSRW+wz+BtbvfE
l.VpFDHhCOlZKsfaxwFhkr6rzk81WkxZ4MaZTh2HZTZ0Ick7SudvfgqSAsoA
ZqvEDBFqlD90VSZ+1nvzLyuQFFJzNaLt5+tnfJX+PmPT2QRgeyTX.yBWh0mb
xtOwGgH+YqTJlGP97AYz2dY193fLLS1eH6D.DeZ.H7amROo0LTMbkkXJQBkD
LNaS5b9j4GhDuyxle8v.bK8v.yYpxocP6TB6IwW5jsTRcDgjvtIMvqLpAdUH
MWPMA3hKPcNEUAh4Tk20xJpbN2QGRWSOzbGEyCU.dKPEBvaAIhoOU2HiYMsg
QTmMSlW5vcy0YUr.jNSGyZpsCDNSGrYkN38R+.NazAqW5GyGc3r8BRLqxExD
PGGi0zrzxcDr4wLSPehg8YS9Ab2uDDe3XLsE4McqT+8O9PXTTQc56pFeiqVj
OLjE1u0MktUk56mtd8AE5B1mojzxLeRWaZo0BQJ64f4OHQEkOvTo+HLDmPMe
RWA.wUp9ekdTzw1D.k1VBHE.h8SpKAqTOEupyhT3UsVWAwxJO2gzjG24uNLa
.CEwqcTdcLsWro7j5a1Li.zCSROz2xui1T3JDp+2GJNQ2Nqfze0JUiVQffyq
TvXBUgNlO0rTA2ZAHFPfbyiJjTBmaKLiHI2HanrJOa4LjQoX++rMH16y9w68
9bvlv6ShVWcvqAQAapSobAiYe2B.THreRQzHTSRsxCR3TH170Q5cum8STkGo
V3w8pVdkVFWsoQpurAafLNxpwo2Y5jlu.8rsYd16Bi0IaUPgVHVhfLaamqJi
Lkl41PZ2M3JT5NgMWOz+qZ0IJr0DlJto8SsRz0s5X4pSL8+31OYeau+M5959
nP0ne9G5zdyUiuRxDXVob83OJ6deFn2M9emUJu5FfeBqnuPGlmoIcReD0XSk
SA2LUZVwamcvo1z04rjT4cwTEZK62TaWSnvKEoWcqPcVhuGn9j6QpjekbeBM
+zY7qvM082aZ8Ss+nuqhCnokZ+0HpO0p8Pa1H+KEqkBmvxKglrccq9OhNDTt
dV1+vYfbFw1YSASH0WBdAYhcIeKdTbwQZmV3SAeg4h+ye3ONl.fTgEZ6rfiw
HqMNRum5tbLweaWPvH4BiTPWczw13+zgDc4Xf+ufnnjuMJNPnh0ka8RBEPi+
cpRxzzcYkSEwuXxBdpD.DyMidXy8A69apw.LJ1Tad.LpaTUPJTCGCK6ceVYh
c1.B0bg6iptezeWCugQXLrLy5hmMNLk7UNc1Y+IoxBrY0xfees+pW58VhKa2
9v0GnFBJPfKp8I1MGNg1QM4GLw6Ht0G2aIM2Qbkuoy6CX0f4LajIDsw99zdP
DPDmauuUMqNpjgP32XazM.n0s5VXbXpF7xNcLacaqUc6v8oc+3m9GAstY3xQ
m1ZnCpFpvpi5zFfac4CY2lzbY7b11lbJKm+sWF7VoUoGIPHrtPvkWw8lvsTL
SN26n3exn2L7BJ.Q4cmhvP4wbTP55oPSqb7zcV73lSkuP90AWeATNTTwOIPR
IkATADJlFOKLw6POKHm7rDrM8oKjekiB1WSWKCnZE.AHiGDJCpF.NASDGypb
9zUsFXrKskFdHVZVr.oKtep+PBnH9j0EN6MWW3m2NC5fY1+qeootcHVYX2sx
vuErx14Gu9Eua0J86KUrr6uMGFSVhQDrJ3VPghVVxSOMVcnKbPyeA0eqtrfa
DP854f3HBKqfIMdStikMm218sU0f5WBi89TvwJdwvrpPtaUoDZyWcgXWf4Lx
HJYnQ8BI7kpncPbljyoXooZhvFZoDqipH0LZR.GRGQVc+4vlfPdOFuG1gNh9
E+u68oKnYC7UuynbiqmBGPePVUoo05hPm6iNQa+uOFTtCXuaiR7.d29TnGZv
UrOnfuTgCHU7uGKWkHHdx5LlHt.XydkJXPxKCsJ7zRYKjIlLDX9qZkJ6gH+A
bL+BQDKaJ0IxixiqjKnYyvBQLPiAwk5f9UeTQ2+9XxX4VCBkOIGtu34Wge+R
c4YyBA4tBR15A6MbjW5xZycHjQFjMvovF9EvYPp+VEY1emAYEu21ltwIza.8
xf.gwuniw.LXTnk53nzgCXWUSuJQAAq5HLr2QG60rhCT35m60bByFmZWKaC4
ecNpq05cpfg0krvr25SgU2yaKhBdze0OJRbnZAb2rPPzRVfUNacHYoRXYgZg
1O6D0oQgc+PpKRy0MvQfF0kx1KSi0JgDK1kbHdssfjwNJpJWs2fkHwp4ZRdR
ZT+Cv10pXmZDLEJI9q95iFh5riqQ4iJQANQgq95PMBeiI7omR3mUeZaw696A
gO5Cg+YD9jEmZXe.ltWMIs9LK7dP1C+P1eFYO9jx9rn2DnFKuw6B29jOD+mQ
7iNk3WWqQzKYtx+uDQza5Dh.jsNxuKr9weX+eNE.3IT.3PZmki72Cxeh7Cw+
Xr+A10Tnnvy+lWdC9PdOBycJ1ttpr2KxaI9xIuMse0BKiU7We+GmoDzrDNTd
WG24NvFebGG2PQy0VRfcoozE3d8Yj23ZJGZoofk3tzNUY6ZGohLN2dl6fVhQ
RHPBkP6ABoN4hocbui59UpFLyJeXkLflMMbTMMyIEPrXBjVLWTKJeB3N7VxI
.kxlhlh4RSo6BJuDJL7lh5PSQfSAS4hqBFZJZIjKszTHnntHnHSgdN0E4zjn
7Qc1uwX08HBmrnlBm5DWLdQxonkn8Pkn89Of.p4fYTer1yXTACCv77k7VxPc
buwR3DWHb5T.QvdzE63ZIWLZlf1A6huMxTzPHmrNmB+0XfKlLSguMjKgKfXS
fGGjKdbHSQzBlVB5BO0oa.rzLkXHhzdZ0V7GikzboSK9T3KzbVv5VzEvQ2TB
2s0aGuy7rxUHc8zLRcI9oukxObiUrJKV+l2Zz7pSwGRoShHj5ZvTiWD5TDhy
xHVbqssgbeNEHpIyXQXHjCTpGHotDDIkhNt2TOtu5D4IfwQKwvtEAmvEyNHc
oToYykRLjYRwwwRcN0uxj3mC5BNzraE6D8T6.6S2H0Nn9pcH807.5q6Cmu5G
Lelc2csBImkYOSAjq11b+OttqJFSdZV2dwhaHEJtAVj3FXAhq8hBS2EDlNJF
L4oR8MW28Nwu5tvurlWKE9s1E.CtXuMzB8VOJxaio.uMnh61nJraitnt4jwP
8xlzvJdQCr.tMrh21aKChlEks1MLbnPrMZZoRYbxY6yyWj0bs.q02hq1jvvk
JhZmE4cqvoMIjUkrtucBq2EEsQXQ26hf1.K.ZCz+wkvjtp0gaRwxE0LGztNW
gLazZVMKXYt2MrKEoroh.KWLxblBcp.jMQTX4BMlyDnSEWrIh.qTDwbmBOSg
CahHtpEHL26owkhB1oKHXimAZT3ubl7cpXeMZBrQQ8pqQ5LjB40.JhW8igrC
griCX8q+mW++C90YivC
-----------end_max5_patcher-----------

cool again thanks! Looking forward to have some headroom to code it with poly~

SUPER COOL !!! I love that.

2 Likes

It looks like the alpha04 breaks all sorts (which it says it does).

Thankfully it’s only the fluid.bufnmf~ for this patch.

1 Like