Fluid.bufnmf~ "CV Splitter/Processor"

So I was wondering how fluid.bufnmf~ would handle “CV” audio, and it turns out, pretty interestingly. I massaged the fft settings for a while, and there’s probably more to do there, but this (@winsize 8192 @hopsize 1024 @fftsize 8192) seems to give interesting results.

The idea is that you have some CV-type signal, and then decompose that into somewhat related, null-summing constituent parts.

I didn’t plug it into any sound making stuff, but if you try out different CV data, you can see some interesting shit (e.g. try having flat bits of DC in your CV data, or slow sweeps, or “fast” LFO gestures).

This would be really awesome in a “gesture recorder”-type context, where you create some CV/gestural data, then have it spit out some complementary/related gestures from that (if only it didn’t pinwheel…:unicorn::unicorn::unicorn:)

One thing that would be great to add, but I’m not sure how, is to be able to “ignore” @ranks that contain little information. With many gestures there tends to be a “bum” channel that is largely nothing. Is there a way to check the overall energy in the entire channel of the buffer or something? (with HISStools, AHarker, or FluCoMa?) And then merge that channel with the next dullest channel (so it still null-sums, but avoids having a channel with little CV in it)

Here’s the patch (best to save it locally so all the loadbangs fire:

(also make sure you double-click to look at the buffer as the jsui I pulled from the “bird picker” (?!) patch only shows unipolar/abs’d waveforms)


----------begin_max5_patcher----------
4740.3oc6cs0iiial84p+UHXDjc2fZL3UcYdp2cxhjGR1.rCPVrXlEEjskco
tkkLjjqp6YPpe6KuHIKJQIQIS6oRxz.cYWTW32Md3GIOj0O+gGVsI6KQEqb9
Vmev4gG94O7vChh3E7P0u+vpigeYaRXg31VsM63wnzxUOJuVYzWJEkCW67eG
sMKemy28WquX54iwoIQkhmDVU39rzxzviQhm5OFk7RTY71v5G4TX41miSO7T
dz1RobAQ9qAO5f8VSezA5RD+BbMv4+6R0jctrtd.spm8gaiZW2w6D0Z1lO8M
TzpV2XQ7OItQDcMfW5e6Cef+iGuRixKwQu5T9bjyl3SYIg4NEwGRCSbdNJOp
9lShSY1syohm.MlkSmsADf4lEeHYcfW..fC.tHVAABaFEMoYZy4MaRhJh2E0
tTtF7oyEkw6Y9lx3rzgrhvUJuGws82SFPeJfan9kx9QBts1uxmiKb1EWbJI7
qNruFto3eYmVCGdlFNWhn8HgHZO55JLWvYZtv8sHXjcrHrpeST9pYpUdRrFW
2f09XWnOCtQFOHCSPsiGXuw3imO19Mppy0whL4p9FoUEIuqxudJRVuqV8nyp
MgoGV075aYSfdWfGyYPmkQ4OEkFVYcVBf0wnhhvCQ8hW3.yNaew42.0Z4PSZ
47.v0A.OZ.xyCSvdLSmGrmoS0NAGznnyXffqVfB+Z3KQ6yxO9lV8hNsdgwp.
DXBRTdPK0pHJg8brV6ayRxxkOOXc.Jf.gdrFL.puO5Q8EgoJkwKZH6k6P1q8
IYgk7HoQ9RRbg3S811VM91uOJuoe5surDidZzqr2ZufrSNLgYmVGAXDjZfvQ
fXI.3A..HBA7.XH2WPraDFjnjMRTdkJVoirLFhShdIJuPEW+gUgmN0p3GZ8H
bCymjgD9O1TTbprHPSQ4QuDW+7nlRCyYFiRlk3btzc7E2ZQj+Zx1w7TmiaPJ
EtnJQR3L3twhSU4BI7Y0W9h4UfuI9ACxi+AwuUDHySeHIa6mi10VdWkcJJMN
8TdTAqyml94Zt7tn8gmSJepcFVPdyFMWuNUMsWrIN7eOONLoQ5OjGuKKkKDJ
tAdw0UGKEIJWa3+7hxHtizvSZdXV..ylLvEKXJ44hMg4buTE7asaZUYVVh5k
Zdtjn8kUW9TbZZGqXY1oguXd7gmG4Y2jwt3wwd2hqT7z4T4UehEPT9TACNT8
9BSRpZtp95+RHqWtvRVR5RW.BzbQYWPOWrMOKIQQekW4EMWYGK.eazqw6JeV
TQsCFX2d7o5fnUMd4cwGhJJUKqL7PgZIEkeUZzaUz4MUMfepL5HKEnxN2fxf
eZ2ZsMvlR4iAvoBxwg338x5TDUJASY8q19N0kRxPXexrOfXvZWWWOnGquBTf
qOu2UHh1E7aX.vI.A6ADJ6p8gZj+Jnkanw5keJK6nC7JsSfpOBtYVl.aZXjU
6R0YYB3HFtZuXCrvNfAiZ..C36wsEn5wWzt4i3AR2E8kVc7nXOtf2xGow.Mz
DZD+55MTEYmy2V6NjVdV2TJpCC3nLNso2me3h7yuQi7SyUHXMLtZonpv5tpW
wgj28jr6mmBKKyi2btTZ0Zm6wrfIY8YuILoBDroSTMnne3hvMyb7h9ocgaea
tiV.G3IxwvUNHRADFgN4nGaOyCqr3vjykybEDvPq2lktqv40r7xmcx167iq9
t+5OtxJCYtJSDOhDcBZqgLSIVZHy5SWO5Kmxc9W+M6gN+NGz+ly2z.OekScU
UGWxIvhJvpwTqkBOXkEGV71jnv7jrWWXXNafvBcDa0go3tnl.KadQfD4bv5K
UDvDJBZYSyA01SywPC.Mb6mc1yTi45OqhYIrtT4lAO6NrSjEGiMuo4aKU8jn
xXxR8xxIocbesUaexFG8wvD1P9bfqWZaTYnsGwp9TZfE8okNabPN0XQNrAil
WN2Fxnp0OQpsPf6DpKYH0U3YYd33TwzIcAgzYkTvzYNH1LDWNaaY4uwLJHs1
Artkbp8THn0BAHsZD.oAKMfnpUf1n+.cK9DepQrn4I9vaNeCz70haRCirsQE
3Gw8FXWPfaucozAxZ5jch0Xh+wra.AZ2.xmrz1OUsajhvklSheWmoAGX2lNr
Qk.GsQyH5tLcFHdplF3o.Op+TuF6Zy9CqmggS7YjZY9bepvkirZODX7Rzxxr
CGRhVZrK6Clhfjwtj4qH7XWs5h2cJANdOgwyU6wxoEBADtQTf3mKH6l187o0
J3aw31e6uct4yT4jQTYiTDcB8b1dYBzp4z.lsejRjLAAWqYVV+vVFoMLLb1I
kVoiHwGDuklI9n.rDhUcjvE1f714HouCbjU53M0Qhroh9b1Kye9ApTSYOjTv
DPNjwldfl+qUSalpKCmtT9hi1z4yxlgyArSLEpHhuffKsa3pXhIoGAchTHG7
Csi7vlcNIl6u4O2uDkwQPuAiifrHsbeRFqpWsr4wrdN9tMSMl6nIV0Llo7ig
BoxcIysx4jx3hj3cWZ8+R3kEMXHruosL0XeX45vCTHLSI6UwDiVbP.Nooi8T
Mq1KbTnDswFlXJ2xF94tvxvkNU5KltQU1LJwWNH6pTVA+xwxnWJi29YkEjHI
bSThRIgIIYutKO7P6BsO8jpWRRA+MTzdLI..CbAd9DLD68nwEcQ66v3oRw54
cntFyOmH4AjEGEirFeyopp3qaMX9YCWsRZRzTHBtT7mFWvffP1bx6Nk84nFM
etyCQciDHTnydSkUktkObQy+7mJNO9vN4LCqIDZex43cqYdYNKlW+ohUSxxv
pQl6BD4Biw.KMICD26EAR0v1k4RgTcL7yCX2IcAZyUeP1uqinADlAyxCB3Rf
CuWfGcdMOtbFjUer0mABkjNkS3QHBiBf.HUPGUHDa0EP0ylKuNZsyumo0GOk
UDY8sGhqbNXIH4fN.1Y6gfoVb6gLHOX4jpKetMSboCSDVpcoZs6+DRDV4B9.
qlpTp7CW7uxE1ekKr+JWXWF8NO4rIJ5zRI3HR1oWEqNIlP20A3znGcU2p5Bl
lptMH11P3acdbc3bCf0MLd2zXdCg6of8Y.9WGLPVpEBXOjjZDUIXS6Xz0CDZ
.XnI.hSBJZHv3HfilAPNAH4j.kSBVNAf4zflSBbZ.3oI.nyADcDfzIASGGPc
bP0wAVGEbcH.V8frC.zZDXqd.2tHHcAd6c8QGdReT3e+e4+5+r6E0ky4XXwP
49h0GKmyAcPwiywdC3Ye+Irq8kZXPsJWtuViWudu5zCVdbZofKvNe+oj3R9r
V7iqF0ZBM1ZxW.LW1+ntj.BrZCmpgZVS2YWuY6+cfoiSObGXCCsVbnWEcDk4
kSoWuwwC+Nv576dyN1EswPA8V6+k1.syZsn0b9dHXa6W2lD8liuOvNlUIPmq
qs.5LwNBtG1wo5rfGR4Pc.WHI8x6y.JlZ5JSI8tzmgav6ffw1bv9ZsdPDdMl
8OBlBn9z.wNquOCsGvXhLLtr6r+q0z5cOLsBazn1Nfw1NDtdav0eyvsjHuIM
QdjtR9.6etA1CcZrqpCGo29oqu4V2VZSiQu2VaiK6N8MQ52datAZu4r7cxwU
CWTjxcQzIiK4f6qjCmgj6geWYzmsnCe2X0AyQzgp6jy6hDNP6qAZL58KgD5M
WaH7NKgyATXZebqK1d90lhNZcmbwEMGDiuad0sidUUfa6d3+Tdzonzc7y6fk
NSuPenHIGHJv2G4KVRKDFtl5AIHWb.zUrbmO53gtY6reJ9NclGvRIXCKZ14H
6WJbV6brv4imB2siyDDDKJj+ek8futkNdPtEM916YNN.dYb6uW.zi3CHtbZC
AkSTJlNpG.MpG3wQ7BDEMW2lA516fNm9or3TGxhil8.q86ZLIrxXgyXX.0G.
7XkxFSDzfnY5j1RcbmUC+YuOFOwJa67wJpQ77ye6wieaQwflRzbNWOH.CrWi
F60v0ogO5Srpgp6nYFbjLCq7DvvChYN.e8F7hxX6.W8g9wuHlHnjD02GaDbV
1Hz6lCJFs8t54J5cEBg3phtlCMFWz6yCMFWSOuV3qPbmar+fSr5QIiwhF+To
ScrSZFxmcEMvbDsa0YsCEanTvC9tYRAwTofdKO2gP8iAFX1Mt4RAxTo.cKkB
roRA4VcRPYpGAQF4jfRg3NCf4cIQ9y6hy9dAgBd5OGkd9BzZMcHzK6aNrONI
og175FVZcefqj2kB+QZS2dwlHPr6A37nG4J9F6KTZ2o2Q9bv5GjPIA.wNQf3
h7HTw27QXJVgL9sdTzk5jyceQMABXiCQ9MVQPk8LREoYROTQxBuNq9+o7rSY
4MLRYMNP44NWlcHObWbU+V.sCi9wVgK4r6TGM.j6ml1uCcgaMN0+z4FRtNoi
r8v5XQW+E1vtc99vzBmuO5X7lrjcp4tn34HdTHVX1QAX+.42nPfaPOq3.azD
OD6lE9dnqGR52XCkAR5+B3iFP7rOEmx4KUTiuDGfftx5tNf.I1UF8eIyIrsw
0MRj6LhhTic8ahX8a17L95E5twttTfzjwWhVWO42jus6Rnqh4TcaCAHPu.gp
DPIdBQymfB7DJJ0UwUDtcK6kqtwa3NP4dqoVG43.DMgSrnoicebOel4PZSAP
ee42XuIDp54uoM59rb6t8+77EB5OYiuVhOrZ6pc4G2X4kMX.WER6MtnNXyu5
S52t62t9AHcTQVDwTADxlEMsu8pZkceLNcFDowdRFtHhu03ZG9xQjHT38Rz6
sf72FeqMvRagHVil0+aSfH54y60+QseS+i92U4Azuk57iH5NZ+YDMK7+sx0h
YmvA2iHY4LB9ejbN5aflJ455UQrCUEcS1nDA7hf2QkHO60zqRKtH6zFLE7cV
K9tuFdcJA.wxKPBk6gwHYabDe9hteJweHOJ5J0BgWfO6WXYlq7j4teJv+aDe
CReUZfOKKcOIJIzGJv2oLOSe3RkUK4GDqWBM..7u0Jp3bE8OvF8wUolhcltH
bixRgfJzXXaz8apRjKSHjqEKB20k35hCpZh3UkMMyIEfmHOq6hh+OHm3zCsK
SAfuE5tlh7l6VnuZCUVu4qkqsLXN6lbuEc37cJLMJ4NIr4YmS2I2NG0m9Nat
L8wZ15mMVQ4s0GMUSNlWNscpOWHzj9UuQfd4.YntSRSJpc01MWN5BbFrP+R1
yOWugbyGG.ttCTuAOxEvf63Ip2lEp8PLhkUdPfum2k+zCf8u1i5pgOGJr4YX
TygzP5w8u47w7nhulV9L624+Yv5i4goe1g57wXlgWLitENT.v4iuFmx6h0wG
Ffb93yYmD+FDfHNeb+9xlqYkSJ8JyLh+2nN.fUGMD7GWuKksXHGJvlmMBrll
a4G6licReflNBiS3GVDlGsg6y9AVcqtS7VY+C1kANBLfFbBOD.T+yMl6M7bc
YQGFFbkUEy74X005UuRmDcHb6Wal9ho96wGThuJObG.SzYGtemctW52Q2I9v
lvse9f31UJs2Tf0dZJpO5jZ2CzfLxQ8bX6PZFS2Rh2941Umhwn9zLB8nluzt
JaG7BL4Ls5xwww6W+MUrikfD3u5uGweGfmk+Vo8s38oxsBo6u6JeVEDzm0zs
WH7o4QauvLSqGWpAUDxFUjIJjMpHZvcRiH9lnRAWVb9kWSlDMfBrgNYR3.12
F0DwfZpMAKVdMgua5DxDcxZ0D5dDjiZy7hwBxu5ZBZhaxyF0jIsaI.KTS3.C
rdVIf.GXJXzUWSl.6Qf1plflTSvqslLAfE6ZCcx0DcBYqZZRcxJQDl.vBsRT
tIXDDq3m.lzkqMzIjIsb6n3prk81V0H0HVU1vt7p1HTDaf1iLAEAo1X4X7tS
YrAYTk7ND.kCMVdfX3J+iVj32tVgyjFod1nQJxjL6pS+65pIhA4lPH1pllL9
0J5jI.OHa.ai.l1Q901oGzjV+7ClhqultaoL.MZjRVolnlNf1q15QLIjvFc5
AI2qtWglLRInMRAGBLMJWsljyfSmifPdkz4HGryQMX+iXvgOZA6djBJVx3Nr
SWprSvJ8Nqc9O+ggngV8hMqmA5Kg84Kj44Kj045YZ1vrLa.FlUuf3O9ggWde
0k1ucjmF1jq2AXNCxWD6wuJlie0rF2nvqtrabYbLbgLDeYrC2ZgXCrN7FxD7
kyB7ky.7qtAQeldquggAr69pkEEtgpWLlM6dMk01Kgw1VQgawL6Is7lwFaqH
VJKas87EKE+Y1Lqdgrpdgnc2i93TacXlWrMSoMH5ZJ1Qe0QV8YAsdoZoLe1V
BXaFNarDZDqlsjD1l8xFKfFwXYKIfJLS1bIbB1HaIgSk0wFKcFwz3wYY70q.
8XSrwhuQDo8pEvdLE1.bGCYG7hXF7UqPWzmws3cxYzCBDBT.l3BBpxYzC1IX
493ljCLdfC59O729v+OvwDnqc
-----------end_max5_patcher-----------
2 Likes

This is quite interesting.

On two different sets of data I get two ranks which look very similar, one which is very empty and then something in between. In the visualiser the empty-ish one looks useless, but I actually quite like the data that comes out and wouldn’t sum it into another buffer :slight_smile:

You could find the minimum buffer easily with some js, or use the aharker stuff to do it (although this is overkill probably). I don’t have the brain power to do it right now, but tomorrow sure.

1 Like

Hmm interesting. I wonder if that’s down to the algorithm being “sonified”. Can you post some screenshots?

And on thinking on it further, perhaps discarding/merging isn’t the best course, but ranking them in terms of overall energy would be useful (so you can ask for @rank 5 but then only use the “biggest” three). Following on that, it would then still be useful to have an option to “discard” the leftovers, or “merge” them into the next “smallest” channel (for cases where the null-summing is important).

Ok, playing with this further and it seems that @iterations has a direct effect on “how similar” each split is. So something like @iterations 5 produces 5 slightly lumpier/wigglier versions of the original, whereas @iterations 500 produces a much more decomposed signal (which makes sense), including ranks which are “close to empty”.

Even @iterations 100 seems to produce interesting results, leaving me wondering what is gained from a really high @iteration value for something like “CV”. Computes much faster too, obviously.

Yes, you’d expect that, but I’m still surprised 500 makes a profound difference compared to 100.

The normal, and slighty blunt, instrument we have for looking at how the iterations effect what’s going on is to look at how the ‘error’ (the difference between NMF’s approximation and the original) changes over the iterations. You expect to see quite a dramatic, exponentially falling curve, and often a lot of the change seems to be accounted for in the first 20 iterations or so. However, I remember @groma explaining to me that it doesn’t really tell the whole story: even when the this error curve seems to have flattened out, the algorithm may well still be making useful adjustments that it doesn’t capture.

Well I wouldn’t say profound difference between 500 / 100, but some difference. For now I’ve set my version of the patch to @iterations 100 and will go from there.

I might try to whip up an audio example using BEAP later today, so be able to “hear” what’s going on (as in comparing 5 x the same CV signal, vs 5 decomposed equivalents).

Doing more experimentation right now.

More iterations = more interesting and distinct outputs which is what you might expect.

@iterations 5

@iterations 2000

I also made a version of the patch that flattens your two ‘weakest’ buffers into one, then copies the rest over into a new buffer~ called “cv_flattened”


----------begin_max5_patcher----------
7402.3oc68rsiiibcOOyWAgvFmDm1Mp6j0h7vDu1w9gjXfr.NHX2fFTRTcyc
nHEnn5Yl0vy2dpKjTjTEIKwKRZlQ6fskDoDqys5Tm5bq9au8MKVl7wf8Kb9d
mex4Mu4u8127F0kjW3M4e9MK15+wUQ96UesEqR1tMHNawC56kE7wL00wO57u
G4mkED676OrYSP59huxlj3rX+sApu1eNH50frvU9E2cme1pWBie9ozfUYZ.A
Rv7GAOHdE9H8AGDBH+DF9Hv4+qxybi+J0yDlesv0pQHY4u76fH2pi99veU8M
QTwCRe43CaCiiBx1W8IHtXxgrhqBjW7u+12J+yCVRchC9fX7Og3ryYcv9Uog
6xRR2+z9frC65B+oXlDiIbOEY.hkufPUveMXl8ocA5exhEk2pFYfsvD9BLhu
vpPTPZNVlilBBYXTvqB1ZXRbku8aV3uaWkK+lJ+DIs4WRTOHuGJuTXr9RfxK
kF7ZXwuGUdU+TAcISPTNjpEc9Hir33iIYcPZ7gPEnnunfKkCRJ9gTja+tbYD
Eaq31GozTsbFfHegQTxYDOvQBsfe+bTxp2GrtJHuHYWPbX7tzf8hoB9Y4vd4
sWGrw+PT1SUk8fnGMd+BoXi2rbZy+VZneTIB7bZ35jXIPTiSHubwvIkhT3Fs
Jxn9Fw96L7iExKBxRK2bu.IOreoepjQsLJnJmZQVRRT8aUhKQAaxxu8tv33F
Twrjcseyzvmeoie6xDwM210yVcm8OcHVe2mDxDYOs2+05PXleTT9j15O9O5G
Gt0OSnqRyBPfxaFD6KPzWDSnShhpQmz24UC2YsPFeUvGBWm8hZfpJLn0LjKD
snjKuN74f8Y0uVl+y6qek8YeRSzqboCKymC+TVv1cBsx5uPbhjhrnBNdT0e0
osUUxU65corqtBunD+0K8iet5MMnoiBzy+TuP8ZplyrpN0ys1WohJOW2pCoI
s7lz7UbCk19bcICjnHT5r2+4.iTkf3fzm+T1KB8Fu7fylMY67S82t2g.3Lwh
SL8adwON9gpKX33ubuCzYav5P+3pO3nv3fUIGhypo4r4Rt0zczMi.muRCRsf
KsONQqbAAGcQCvwfdvS3PnKBGR+XshffPJYRLn3ushvH5.j6pRHJrqp5LY0f
DuN3isQBNpYWJJzxjYE1IuuYZy9jCoqJ3nESgbpioBgwrv3xE59oJbY42zJl
y4BFkO89gCIwuE3H+hE1FrPt.v5mzK18jvb0zvkGxzTtpF6bVJkEVHrzOJWk
a4zNC5re6QfaZrqbuizDjrNsklmKIqlZSnmXJYMoXxhqj8wQghUmiRdNbUmF
FKvBwNBXdJbh0CxfOGj4aOieItnihDDtZKGb9cieua76cieGkwuKU9+3yNqd
sGiLv54dLnVcFzN6e2HLtVnxuGCgg.uAXQBZBsypCJz+hCrGRCh68HS7eTFg
SfD.CIz66wzqkw0tEpOBUnzbpVIOsuQgKiYnVH.Ijey9jcxPTW1iP.0iS4bF
fickjKzzJPwtxBT0c8XcR1Ojr6SNYuDHMHJyQv4STeJVbeG+W8Cij5lb1Gkj
s2pcPUc4smZ+aYfefTKj5Bz9tipL6RtupZzUIb+KGDFytIbU4Rnn1H7CZuEW
VQ0Uu9zFs6eEqEYmDatSdwSrZO7sqZOwxw9qduSnSXujHkxOlKG6gvHBBIlM
mSn7v1QujZ+dnakf7a3kH90HwT4WGBcBnnSXW6HSRZT6DngrHwEh.I2wzlCB
q6hF.QxUa6OkYGQRNVsSjnWYWt0AQZSzgv0OJTRIV6XWx9fOO.ZEmhzdojMA
9mzic6Rr1uKUnsXiPWtCv42Ac9GBcfNvGEeP7tpJ3OOs8Flh5wOwXEq0q0No
kb6ZQmvbBw1JW6rKMYUv98CQJDoTqw8FKU5Fd1pPm+yoIkwF8rTnQThOT3Dn
02Cd6p0OyY8gs8Qfzd+f4RM6xOyjD0ys0vpvuckZVkDE4f9s9oOKfJqnL4Fm
65cFBKOziPi6PrkhT4N83Y55Dm2rHX6xbu9TdwRx7buYqhD8PtCqrOj37g.+
2K21kdy.60a+JINvwOyYkLbVAQhEQR13Tw+8O151vvVsAKhqNjU5.0PbGwFr
FTLCA2fB2H7iX4+Q8bYDFwiPDTFj6zKqS+5RVuqX1lFrM40.muCNDhO1iaNP
Em4h1t2vl1j4D4DMHhidCstP67lW2Rjnq7NYExuYI1s5CwUktQnx+NhsSv7p
Ojo9aCxBReR6K9lwX91Zcaw5Eh+sJJvO0J5FEp2XOgeF6C6giupGoVojCYiY
3KCk5UGAz7jX00mV1GkRGYzbeqkKnMb8Nra3MKbjn3am3yTQSHeosCdw6Alu
j06hG1ZPFv.3HInnuV11NrZz7F8F0o3udbqVNkQuG8owQZT3WBpl5UesXO5d
B6hHXpXdEMeJECOIZpnfa3bgzd6poJu83JHUHNhy77DDEl6jXWMg+ktc0lHN
5r3zycBrqlPuciPzYX..m7HrEYnQOKibCqmNSRh5WJBfOUJBx0aVwxU2Udmn
KpD51UP5r7whIZUtMPSpOVHvut7wxDQ+8TSWgLzjSvwteyPvUpEriPC4EkBf
sZAZk9x9ZIDB3JTloUDj9MiHn0YuPN4VGc3IIeEvnE239DK5b7JVdXyYCyoX
86XrgXdCYBoVpwyJRgtNYaoXcNihWpUDFzt3wXqjmgRc142+THhNlm5r82Um
WTttcTLSfZt3Zo+p2KCKe7ZCL8ysLmjktPyqIDEyypdWPshCa4yBEy5Bl3mb
.OhYDWwtj8PXgoWD3CpK4wPtDJf6Avbj7RL8agT8sjWBRpgp6RS1kjVV3BOR
uF7CBiUke.vsyOX7aT1Av0ifgXWDkvkz4i7FnqfWoXPfZWbfbiYoN2To.tUE
XlLyhbfyTctISBS4C2hxsycFK2NEXXMwXtfhhGd+PAcFgBYrfbPVwRXm.uIo
q00OFXVfMrkDHl2sAAB2NABNOvlsBxL1bSgrBJHyMTXitE1bNcRJBfs.HvzS
nYaCWuKILNKWkOBqRVf7NhhzK.EeZFAcajyk6oX9pDZKEkvyLOzFAI7bNoha
6B174T4GmZKTLmqW6YqTAeNmZ6YKsvaNkKbs0DpBh17AE3qNTvsji3NmyQn1
JcV.tyCsvVqIcmy4HtHagBxbCE1LGgNmM0CYTMrBJbmyETY1p0BMi66iQNCf
XtnD1JZRmSaKn1tmF5bp3jXqPAYNUYIiBkUSPHyoXAwV4BBbtgBqnEyo5aB+
VfVfskifm0cxY6tZwty8LUqjKvczWnp0CQZwkhGaAMGVGl7ipFAyS+mAwGN5
P1hVViYXe4yaBihJcapofvUDRhE5u0CUtUM2sp7fpmxmpRWtpbkJV56UZChQ
9uCV7CITBGnbMNQ4qb06j9jEKeGvvOEcbLAPtdjjdXmnem3RPwX17m1leiO0
EuXdse2grjmS8WGlGzDyAi7gJhKohu4os9Eo6BDLhvpOCShakL0+iCq7skQV
sgDIjt9K6Bhc9Q+38N+Xv1vkIQqWbR4GoHkOEFKaPTAkTTYnITTTTIaAobi9
ITzyR3oj.1g7yYvKqKA4UJ23oB.i9cFA5lRPLYnYTgkQk0L52oeZWDAnZwkq
B0f3RgXEJg3XOt9cTHfwMwGp8S4.BzUEuCwui3pvIOBh6pdHTVseq+pUBnpd
bSJBWBlTPbJBgRyQNHJXayetqmfNpYF.nmm9chmjrJXa962Kd.qjjs5OAj.M
UiKj4hzZA7..HI+ALqS5d+9nv0Ao+Ox1alsS9p.8pDsp1elY3cq+GYU5eZ8A
psNwG7Pk+zoDVCTTHR0mDkdBYolE2742WFhSi3yaMmTLGTEWvpx+RcgDJ7RA
5mjexyCucJzhWQWbgdzSeWO5hcUQh8Aiuy7O8KJ6.Ncl54KQzr2vdFRyJ9eE
asTogvkPRVmNQ+9nCAUScktgbSKKUFydVIRvkWBdAQhzjODOJr3HrSK0ofuv
XwO7I+wgD.jvvBspbWLFomiifPH9xgD+ozffQhEJtfpre01ZHMi7xg.+uAQQ
IeXTXfmvhPWsVRnmJei.TAm4T0k05v0+jpcmR4.f2binG1tLH8OI18wnPS4z
CfRbiJyaJEFCqpceVQhTsAgRrXP5cYDFCyymh3laNtfIww8ZI+0EwOh21y8Z
rQDWHPAzbLgA34aDwEZP.85v1+Ju6aKaqIc0tpYTUMXkeNtfI8eLtTlVtF6n
0PyczZjwNZMZ5PzF8koNaM2DO4Km1Gl5ovypm+o7qCddrszZtUpqq2PbNi7j
tPa2cfVyceVavP3EsgwizEyDT1g.4btKsrtT6o4wCvWmlGep8MAegvI.ANV7
5jAexJAPmyIqz.P1ZMTjtDGgdLysSjdJn55nSEA+V6gH1vWmPY0m8K8PjY7W
2WFKlUhFHqrrIndgmJlUoOv1o5FYabqlPqE5VMz7WM1WSsgkNgJX+WcXchwd
t5ZNEUGiGipVN65vdUsyrfTKXvHNuN5x3VyfK9+VwdpQrmZD6ISG1KLhMHUr
8KKl+xPpb5jRF572y4LKYRm+tzYiE3G0SI8JVAhZq0e5VcsQjEccl3JP1NsY
P2X9cK0LYElZBA8XyL2rtOeO8DKyoxwVVW3JTrTqrG66MPwVO5LqWpKDUdOa
QTNKW7cf3I4JgmqjmH.x9SSpDY62rWVwoLJC.7HTLlwUm6DxhyBUXgw4h7Hi
GCoRO1SotDHFg3LWOzUYEpCwgxnX3G08tdJj2o4MU1t1Cfq2LuEf1X19w9Qe
ZefrKW8cPaLZTukbugZzHkdcrpnxoB3msYsGcAS6ZwZq0JY55dc35r95NmMg
wqeRLj+l8G11AxhzGcUt58Aw6bSp7yXWaeCdjf4xUqfS08G46GHt2OSv9F8L
AyXAGeOmAumyf2yYv64L38bF7dNCdOmAumyf2yYv64L38bF7dNCdOmAumyf2
yYv64L38bF7dNC1x4m1Q2ZCez4+NXUR5Zme3uVM3PkPweNH50frvR2LXNnLd
4mwsR1FijG4pit7tpiTgFBeg43RQeDLuguoMhxqgAePcZxsLbWRjepy9vmi8
ibDbmxX8X5P31bG5lqxDQOHQXKhPiJlqO830g7gVMx.FOk3LQuJiAxxCKWFE
rObc+IFk9q9kGAzSej5MkzuxyYgaU5W1Kg6cVGteWj+mbDu0e49+w0FIb31I
bBcipz8knlOp6umTn4.QU1DhaPQvWZJh1dfNz03p00vX7G8vLgMMLhVdfBrK
GeqmqGBzJb6gsUQBA7TbIpg3O5NQolHZBi2rTacuAaNmx4BfxkcEKXJrLmnx
vKW3.i6LBNywc9ChUa2jjt8yGEOkmomkqNs5UKPXLttlCLQ2t94cgu5jd5gN
eiJH0sk13HTm45l7fHMYyFYZfTedVEJFqvlCi9.kW1YaUM01GLeoJM.2B+dm
aWzTEWbYF7zAWvSG8Vjvr.W...QHfK.CQVl5nlSB.x4jtye6E37itx6dPymp
flCuGz7awflaJb4CqWo20wCQQRJJTWqWAxobkm1z6osGAhUwM734yib8VHZr
mTXva3iatRh0q+ZRxVGnczIP9K7QRYt1mL7Mc+t4VtuNC3DpOOQ1nkyKhp79
gbDX.F6IBw7zy6ssubBmyF9Ge7.wWIdIJ3WW6upqL4Dy0kDCSu0R8YxF07dJ
OmbRcJ27bp1eVPfPa8pj306c9PRZ1KNIab94E+ve8mWbtajN2nCcZqJOw05X
izTxsxFoMatdvG2k57O8cafN+VGz+ryu6XxVasCsxW7R6VKZ4Ax0YaBO3JUZ
EpyWntKFnbwbw1iU33PKKS1rmV184sDHQ6YVOMhLHWjTkoQuhN+nsMf5u58N
abncV56ZYVBVU0ST2gtsSz0IM6kSM+rEnmVqrME1u1ercyqAybUu2pyrRR25
GI1xmC7QKlipEscGZ85Q4Wq5scoCxoPWjiXynocUPPn7npnwVCmY0sW9d40l
4Q0dNKzilIxA4bpnOxj17JD3ZR5mEDEjw.QU0aAFoP.RkIAPJ25YAFk94lBI
0Q+cTm7fm8FkP3ye1oLFqmIgQO2HW4GgMJ5BBbNzkKPUuBEScR1IlLIeoewi
7IPdDqqoY8y83zI0mMFCE9UapiXWIPKvcs4LPL2dkGc1AXvlqNVyyFvS35gE
dXXmziT8h2dTEKenEWGFOyFplk7rLcC6m+AT03qMsVi1J.er6sWi0PtRXWcd
Br10PHfhMZSyWn5JeFoBdWmxV+27a5mIin5IoH5vaxDD30xlltLBGSI57CAW
fYCF+vWmZ.Upo0222BbTWM9D2Q1hsHjqSmmJqykSxmPNELR5MKiDTssJLZFI
hdcXjuj7Zm9GHGM0qPRsnmfX7fCuFldN8+Dx44tzxiG1Iu24I.p8Ax.BZwxv
4xDtmWeOx3KF24w4r3Dch6PPc56WRs8QPG09HHycatZSTRbm0oetSSJ7w2Xc
MFavFVIyuE+rp46wD3aEYhrpyN2B35U+iAMnhtu8AGSEVXuTqB8g5C7RJv9F
p3Jw1EW6m42VJ4MXxm.ADWUf8UR8gpNme7DySRBIYFGTuvSHppKp3.n9Aquz
QvrQhMkoh.0y8K+R0c3RBK2HYvzmTSQ9KChpkfMoGhBplrKKdMKb06q8UpZt
cmIBkurFGVm5+b6YvyWB4Akl+8YmbFmLf1.fEQRSqMEhrX0jRVTqJgtRsiqc
IuOnDysPjEpO1bc6r48PAmgyEFRDx9k8GB6O6Ay2zMKuoKgA14+.YVkUNYdS
zgv0OJjPj4E8i+RQKdnl9O1Ubi4s4IdCY6RGTJSY3m6P6SWX3UpOcoWM1QMW
CKzbHYjRf0QtJvCNeH8XQeaeHSgPcFmJS3QHBi3P.jpxE07yN5AD.04tk81V
30QO57GBjMxrj8AionQXZevRP5Mc.N2hFASuNEMRq4AqLo55ZuVLZ6IBKcnI
f8Y0NQ+1KQX0QABl6+TcS8Dyv2yE164B68bgcXo24NmkAA65IAGQ5E7xypSh
4zcs5hYzQlSiMzo0r8Tzhts1zu03maROWK55ZWeW+57ZSuWy1.Te5+ZnCDgy
6Wn57kH2paJpYSuvjhPKTFZiBwdUJZohwNTNZmBxdTR1qhxdUV1iBy9UZ1qh
SKTdZiBzyQIZGJR6UYZ2JT6VoZ2JV6T4ZaJXMqjsEEsVor0rB2lZPZp38j62
41SNUK7e3u7e8GadSS67Huwxh09ZvjZXKxu91bVmYE1nSuoobsudWwoVpbOV
h2Iqd0XErzv3LUt.67i6hByjds3mWXO0TF3KY6JhxHbBLu7SMjRVFSd+NIcv
NIcfqOoSld3NvxLzpKhUdZHpM8lRsg33hGgf0M.0429YqoKFkg3mDy+1mf1H
1JFImvurmmt5SqhB9rimGvZxpVQGiYuhNanifab5XeKVHk2bnNfiIIcmZ4fJ
WRmSJoSzZFL9W1BiUyAaKndPD9QYaihfofxSrpSyL6dkKa5seijV2QPZQW.R
ai9qXezNDtnD3NsP3r376v3T3tMYAzszWi61R8y0RMzYftVe6HmTOcmRtMUQ
aFH5mTYajlU1VWU2V8ha6rDGFJ7IkbsF.kKmIaSzWVHjeFPXA5bQgP4pSmGM
7hCgvyABwKZ1LvUS4SWmGw4abPGzNnCurf94L4mzMjCtcg7VlfZEQux7fZsY
6dRGslNWbP9fn6p40TE81rMxNm0v+tzfcAwqc12aorC8fJCcfHtmGxSENKDF
9H0ERPLLGxTg57AGWzHqreJ91smGHLIXoPP2Yq3C6cdzY6dm2sye8ZYlffDh
mx+uF3aJzwcWZOmCCPdMI82kCcId.BSlvKPs+Pwzd4.OzAWfTCMZ2euFS1mt
r+bdYPGh+kjvXGReDSWYWHuAwjH6FmtPLjS8..WwUE6KBZoz7Csjyrsl2rmi
zM8xP7TQ114c4oFwKu78a29862eV80CBvN5UYNN0dqOocBE5hHk0b2Lsi7DP
6ajwhMwTaOdfVwZP6J+FaS+XNIQPcBTOkzH3bSiPW5FEiwUWcYpUWkMS67K0
eSigg95oowPZtCgVLMDQlwlFi5gis.JjKX5PlSn.YKTflSn.ZKTLWbDB1x93
CcNgBpsPgbF4rAELfs8zn4bNBCdNPQcAnS2.20AzjYlRiu3oaK1nJu6mJa2O
U15mQd+TY69ox18Sks6mJa2OU1teprc+TY69ox1ozn6mJa2OU1teprc+TY69
ox18SksuYNWx.vuGJnYdn9KnxhJzVGeYf4pI28bZNeCorP24GGDMFfMM4P7Z
cMZTzVbVp7zzo59LXQXsPI51Itt7nq0Li8EmCRI0OUrLY90Iag8X6snXQRat
TUDoosbCoE2HD8yD+9dK9XNv1FpWqsbAL31ri5I9W+3ODiDlfy4dttkG.ATL
67aOjs2QJNmtYzD1hHKa4Bwa27Ym2kFr+SwYuH9r7Xx5co9wu2g57tPA2R4v
28xJVB37tODFKWs0wCxQNu6kjcpOAAHhy61rIq7d8SZQxyqNwyDQJSueJ0VJ
qQJI+J0uzESHWIa1l82eOJjpjo5iPpxkVl4yd7AVf6D2qSqLrnctzYiunruN
vA0OgwXSR2bANycyEIxVWS4Kg0ivqwt8ATq5T22F.mrN1wFEwh9Zhb0ZAZQA
O6u5SktBoJpVYoQ1wkdL0eHN0eWU8IQQq+A1.bOoWNgdvvaZY0VhUK.rze06
eVgGM3gmxXCeNNQPtiBW89oUU4v32TUQIAIv932vuM32b70leqfp5YTgl82L
Hn4BAmD7SuZwzrs.e5cLxvmHnY8HQtTiDT1JT5cnpefCsXa35cIBox8EELNQ
2HLy6ucDFr7iiE7.Pa.OTc5U8HMOhAma0fimB9.DayX0.hZxHXLUWJfgyazf
5WUebjvG2NwDbmfGgyTMcOcMxU.spON07NoslGCCeejywMTtVLTEzu4mIv8r
hGjmmo4yUI06Ik0RhjQL+w0F30cJnLTql8LICkM5la.OmvDzTcltCu.IX8gy
b8Oh35sEPb08udN4BoNsAvOYRCHaGazHQS4tmOldesJMLE5sw.KPJzTrRMxy
hQh3NUiTeJzZX2PCIbNU6oNcCLfoObYTeZry9rgJPoSkZcqT1BaedtdpKlyq
NSV8wwBcVMYhLIVlXyHglBqdsY4MO5bXpmcCMYNzK5YCmzaJLefRGuo9E11q
O9Bp8wwp0wFisUZcfSMKvpgFCmCAOhMZYPSgYpPaVohBlj8TZkwXSwHYisXD
1jLR1P9ljQxpYoniE0+vGIqj8fSANYksKSxHwsUJerTOjMBDJvYzijMq.ilh
UfQ1LeBQmpQpOSzISg8KHalOQlDbxFiHbmBc4X3kRuG1J2RME6uAaC0CympQ
pu82Plh4SXazvhmD9jM6Yi.m.sQ3KltbL2VMrSxH0K0aJjxsQAaosFiajrQG
AdJ7W.wJesxmpQpuUMPS0.AtHBD1nfEOIijUFKOENEiPuX3jmspHFqOEoVs8
zI.kX1Z9+nGH5EBirYQvSWuPGt1FcYb4Pznqh2naheZWDu8tGdytFtJqPaT.
pZTsmBOsQ5w92daaUZRQ9jZtHSGRAlNvhKcfEVp4hIo8BIokhHoHmWe3ssmA
u0yd2pxcFJXTyL.6KRzQWfnVwraVNQCqndFXwfNrBAcxX3kmmcmeQeNzB9b3
E64XJzyQTjmidBwoEyo4IFVT.miFVpU9WlAiyt.9rsvLGRQYNIHbkhurWJuc
Eb4j.V0xQ0oiWLTMdmcwSNvBmbf5WuDqwUe1gcbwpECoERW8U.jiVx5zBczL
TMzhabp.vpEwn0PnUEt3DAgUKPQqAPqJJwIB.qU7g1Cg8TvgSDvUuvBsF5rp
XB6tPBGOBbRACZM3aUsxMZ.7jhAzB8NVV.fCp3+FMBcDe5lh2vfSWHPAPbLg
A34Fb5BaHrbYXS5MF2xYY0a+6u8+GvYElK.
-----------end_max5_patcher-----------
1 Like

guys you’re on fire I cannot keep up! First idea: downsample your CV so you can have smaller buffers and smaller fft. It is control rate, so why keep it at audiorate?

I need to catch up with the other thread, I’ll be back here soon!

Pfft, I purposefully ‘upsample’ it with the line~ to create interpolated/smoothed CV data.

In a more practical version, it would be fully audio-rate CV data (coming in via an ES-8 or something), hence building it this way.

Nice! I’ll have a play with it and see what’s up. Gonna build a ‘soundmaker’ thing first to be able to properly test/hear things.

I understand, but downsampling might be a good idea to see what you get, no? again this is another creative can of worm

In terms of sound, the ‘output’ can always be downsampled.

Do you mean in terms of just speeding up computation?

yes, and also the creative use of data reduction (then segregation with nmf) and try the other way around (nmf then downsample - although there are no advantages to do so computationally there might be interesting things emerging)

Now with a cute sound maker :wink:

If you can’t see the new bit in the patch well… there isn’t much anyone can do for you.


----------begin_max5_patcher----------
8964.3oc68s1aiqjb1edleEDF66ljMdM5qjrW7hfIYysOjK.YCRPvdBLnjns
4YnDEnn7LyYw5e6ouPJQR0jr3MI4Yz4hsDokXUOc0UWc2U8z+oO9g6Vj70vc
2476b9iNe3C+oO9gOnuj5BeH+8e3t0AecYbvN8e1caB+Rxhe9t6M2JK7qY5K
u0YcvmCebSRztvhatMHa4KQad9wzvkYlmAlwIOft2wiReP3IPHp.4R326PQX
00ck+z4+M+yGsR+UKeb+VL0s3a8ojMY6h9kP08XtO3wvThKU9SNgIx+a1rec
zl3vLsHiNdwj8Y0upVHCSy03bUV9ThhCeMLcWTxF0sv2me8fsaKc4OT5invo
eNQ+E4e+gKEswbIzgKkF9ZTwmmb3pAoRnJShS6S0Z1ce0kc2wuljUgoa1GoE
EyE+yerPjzsMaBVGtaavRyGV0DVb6ifOkofXrP2BfYX8uEtdGgbYi+ywIK+b
3pxx7cIaC2DsYaZ3tvMYAY4B+gauJ7of8wYOVtkQ+ka49OkKhVuoRIzx+eaZ
TP7AM34znUIaTBQklB0kKdbRKKtVq3kUF8ewlfsV9vRiJItzvM2IUx86VDjp
ZoVDGVto5trjj3p25ftDG9TV9s2FsYSMTLKYay2LM54WZ4ytHQdy0s8cquyt
G2uwb2GkFEYOtK30pRXVPbbdO3pe8eMXSz5frvrHSS.Ac3lgaBjJ5K6VllDG
WAmL24UK2YkzHeY3WhVk8h9AU1XP9mGssvH5tCsxqhdNbWV0qkE77tpWYW12
LfdoKseQdm3GyBWuMVpEFOUIJD4tR53QOck62V1iWkqWyy2xj0qk1+G5UV18
2+49zMN6257hrYz4ojTmko62r7Em+FMP574vvsNwIeQeKI5uH9aNAwQgabTe
o62DsT2qxYaZRVxxj3xOi3nMgKS1uQ+fnktgE2qLUmYoyTSWarvU8KV4N308
qh4keVU7ahqdix9NKtwe9ier3E2OPTU9MuP59sc8hJnkzKtxbxgPpoVFAL6a
ay8HHsPjdBC177cMq8zpO3ToCnLocjwvthea3nCYJQmxi1V0ja2xf3v2b9s3
Gbj+GR8SfnnudnVrYD2tgwcQOuQ5MtYPD0nIjaifD97.RqR9xlcAq29lCEF3
vMii3ylFrAIZDaHWZropADCgjcrPHXvDy23gg3OQ3j+0qMzu4MGFCCGZLVPt
SkEj20qETzlUge8MmL431Rn.H7vzCQ4SmH3w85EdRC1r5MGLPuxFbA5XachK
CYb8yDtrd4CqBV9VG3hzx+Ap7evDguOwGqlknmouE2deqR5uPboCqoU0emLH
ivjgf.tF+Jt.86tVN0pnkuDHmRPbGlLB+KbOorjmeNNrCLgXZ5MpOq3msCBQ
pXmaRqcmgH.OS8ixbV3rnC7h4ocqfwZDiRfY1niZtqnmEz6tZCNV1Hllnl6E
BF93q+oqnGvSivB65cDIHVLTBd1rXveGXwjiOSoEC48sEC1iLWVL9huCrXxw
mozhA891hwLx8rXv3e8ZvD90soNpIEjr9uTNexe5mtWa87W00PTBjYosMqvM
0C3pe0HD4c8N0fZPjFiT+tSPhlu4F4fDGOVPx88AHQyAIF.LB6yKiQL1XwH9
6CLhjiQbH1QdSKDwtpmF91fke9MGFHu04qqE1kN4S8zu4gyXWZTZYbjDi5pm
kY93TOMRQESxZ33ItdscfgJDzLfJ9uyQESvfSLn38NGTLtXlXP4JdHbvycv.
LS3TG7thm5fZkQe8o2bPNnGD9NeRM5wNfCO4hD8ZHaKCOc+nuZSftaylhzFA
c14CzK1IP0FAJMJ0aFHTz2rbHbN0jxArIO5.W506dCt8kfcIoRK1GvvvobWb
djIwEGWbU2Y94vMu0S6nhnLwjI2NhOnoqT5NqBxBJgIk.kSRiv52uwDJrwrJ
7juAa4WXSIYXKYZHfzMrwbNrZhG1X1GtZ2VUSekuuRogH23nFYbayPl7I.Us
ktgTQDR9HBJoD6NyDgldhskih.STwtxVwtSYwtyawtRdQ.YvX2owHjbYDTBM
1qrZrsTar67arijbriLcrizcr8bdrwDergreroTfrO4AYCIC4otapODfk+ht
FLndhzbxsrLNfIAHvTcuDl6C7SGE.xhvbZFQPO4o2z3ksNnY0QNqM744.EWE
s1Y4qO9jr8MKT0sA.n54ovQA1jv21FYcXXJtcLE8dAS+sNXHvH1D7loDFHzI
CGEsCi32Kv31vvO2aay7N7lUPCy5EpdeWHq+n5zStZP1E6e5ovzdisDWyd4a
1aDj2jhsdipy+0C1td4i4SfnG9.LPp2z4Cf+chqznMv7kl2sub5bMICI8cBL
JEp9fiDjIIR4MCjk.I1nFuA0JHUaRMppWoy.M0pk5urKHbWx9zkEFB4M2NVz
0U5LR9vLC+iGCAT8WO3F4QHm8WPwWFAk1GA0+hAn98QLYWLwTzWz7xzpy6iX
J.flkuco6c7kkV6wi0q4INKNtbj1zsRKJokNbmXH2TmMDupB05xh1a4.wgJG
p5nZ9jihuc.3g2rhG9fkCwrJGBfxgZ6GbXylX3BFN7mU3vCrb3NixAm2mVk4
RJbg56PsudJW1k9CWGsZaRzlrb+XDJRszKbA+3ZuneyLI59n9H5yVyHzNW74
z2q.pqFwb5oQCzDHRwb1AW.0j1aNwBAFpTLmXgOTqSu4bjPenVmdyYOUen98
Uk0R4nSmVo.5nfpRkX9jBnC9nR+94SJXPsKlSoP31G6BTaCARopQ.MKaFy2s
3MU2W+zUlMOGcg0FRezFpYv8l0F7EVaP8Qav9310FxkUa7.pMlLQ53qsqLz4
aXVL.kw2atGlEjT3N2CyBRJl0f.g5NULmynvhekFjB7bJEPmbfuXtC7AjcAa
FkBOvXwbFJpGzPQ0yqiNWRgeejBxbIEd8QJlq.e7b6iTX2tH+hEYJ2cpDVZ0
il725wfrrznE6yLqzYIwoeTi1ywIKBhyS3mCYllElS6iGEN8OMfDDpdL7WBV
cflNrWfGz7pm2jDe7hedfBGaJgVu+jTasZt5TjrNV2XJa6jbOUspb41wsci9
fy+nYC1c96za49txzN4AX9eNL90vrnkAsR0kz7LRGaRhISwvTlfKKm1gXKv.
wyFoWR3OffiNnAfNMxwmEVnIo6dbWX19sso+bpg94DlL6.exdk2xd6VEFbuC
Nudh+wiWO6NgZuQqme3FsddiVO6aILDmDrxv5.eDPprfz+h6OEEo0ktd9jNc
1E7bn8RqdSX5yeK6EoeiWt24omxzrlzNGFR3JGbx07BUFUce4ALbBVrSF015
vUQAaZjfSKW1Jsly8sk6v4izPJRIlAV713pUmWyURvknxaLesf.DhI+pnnhe
1nBSFDavV5NEwUUK6zMLEXSPvrj..dv2PyYce2Qf22cB+68ITzPbk6bTgfj0
ZrzhbKY5wIZTITxJVwr6tPwGGGIGcNN44nksFXLQu1jt9ZcxsCkoOSE5GPRs
mXh20kXlqgqYnXh6sneuE86sneGSzulZN3slJ5.6rvzCtp+wSP8ITBiPzwEm
y1W.KM7mjgcmAf61uzjIXawHKcPtNHV1OF.qraAyDd5N9dik9gZia1u3EH9Q
6qtPHCmNvEdEGQLSnYD5Jlv39q6j7nIRLQY7vcYBFlYNKc7MTIMQXq3I6G83
dUS+3EFPR+iYeCnMjK8ALh6K3BgKRP8TvEYZMnbuvFTscNk76S19MmrWBUQb
m4Ha4Szuai79NAuFDEqF6yYWbR1NPSQub3SO17ekMVT0vR9h7HbJ1y9psAJ4
9m2KmszS4mPJ0+lGMkmiN295fOVZtEKwDRKchc6cESdyxv8BV9YmHmnALzou
gTQIPOfATd+tuCNB+JdHheIV1U90AfSd94TVG7yRmlAngLHwYBfTSI+o80pt
SvfjYqU3tv.I0ypYP5JlsLeJdezpGjNojicrMYW3aCIl07s6D4NAK.90L8qt
aapzawSRe4NHEmY8+KxQSbVH0qJ6ferybx2y8jfU.6WaHTR5EOhNY3DaC2rR
cNnsTN6pgXEhzt0D9eGyssRe9OmlbXy26kCMyl..ldjayquO950qelyp8q6B
fLKHga9RGxgAI5u22kT1ZRbrC42Dj9rTpfgLlfy876gwx8cXzLH5asLI.2wV
eTqbWuKb8h7UUr8hPcNlrUQlDolgU1WRb9RXvmUS6xLYfcloekrIzIHyImAJ
jChj7jSoMH5ggdTPlOAKFOmPqQVOJH6yDrFzlRitBMtIT8wpDkKGfk4x7YLI
xP7ldac92W15ssfmogqSdMz4WgGB3S8E12IrdNns2U8QuSrS7f.GyL+8vvVM
u1sHIW3YxJseyRfM5CKegdAdHe05zIb8emeJe4rLNLHEFtYh8kxDC3XU4dEe
cqdRCfIiaFonmGj5UGoz7nbz0G69DKRTZs0F81r3dEOYgifR.HymICSXu2lA
uh1wseIvyhG23lLPQi8Dog78xz1wk2MuQOQcN86mkUKeZWTzzsPZb76AWSc6
ul+fuLtHFkK6Wwy6RYNIZFsmJN5JNYagGWMWuZOdRnhHHBWeeIn35MIwUyDu
2iq1F3XRSXeuIHtZF+5cGh5Q..B1C3FrgFcuL1Ure5LED0sUDhdpUD1rFYLf
itqWch1PIx0qgTuViEaXUdLPS5ZrvveesFKSD96aR4NyRaOo.N06GF.W6V.F
PiEMS+p18BzH959cxVHjef.YPlo0Dj+CiIH3rWHGtM6N7jjuBTxcW4qIVLrU
ES2ojmus4tCaQw5dgwFR3MS4I7k94ABJLEhcCUCVOxs3FUXDnSSoAUpXCEc1
F.HAfzyUxrUDLOSdQ440R0xgprDWKBV9Y01xuYkkF89VGcpZio90jlh4UsgW
kCXl6V7rzwrohb9iNnGntLO4rj8ITYnWL785K46R7XbjvGQED0kbMuDyM2Rc
ILqhptMMYaR5gBi4A9kn8fY53VzdfnM2d3JtRaNPd9LJl5Q3LgBmO11f8jsU
5FHTkKNvViYhIkAWAi34j7h.yQfyLQJClob8mSFST.kDklW5bFLEqNqb4DXJ
SbVYZLvD8pMRedlI.QvDZr+0A.QaFflGNUz0+Zf2jcg5iykM2RADeKtyY2Ip
gvy5THn7tnERBUm6D4LPjZQQJd2LJ5Pryoj4bfJflRzYtMDhgDcN6TI.Swwy
JAbClbgmURmFpUgXN6ZClnkmU9I0CLOThmaofdwkBw0.wrywWCjTuGXB3dN6
i3AkwX8XysT.oOBeNmyECJeF6MmCn5B0q0bxQ8trdHDyER.0zjOmwVvgNmF9
b53jA0nfMmtrTaJGnNHr4zrfA0tfgmao.DVLmtuYhqArfBsEgNqyjC5rZody
cOUP1EzV3gsJT1SCqv5QFeZ+pnj+fl2kd7eMby9iqOcACQYW1W77SQwwGVEY
a6IYwNzbm4upzI22cUV8Y8BJ6qWhY0JPqWYYpZon40.i7OGt3Cx3LARuSAL8
VGnekZIpopWgr7QIGelHrv7jTa3.y7J4kvxmY8OZSKi9oq3MUT4ysOK44zfU
Q46gj88l89RlKox+xSYZI0xEHaHhJ+cXyb6Pi5+x9kAPaHKy+WRqq+8sgab9
CAa147GBWGsHId0cmTMVZn7wnMJBYK7.hp1oFMhRNzrPz6pvIHZuLdN.fsX+
zi1xpVP9Gra706Gk4UVE55VPtpcpRuKU5jHx7Jy21Yw.px1TVBMXdbLUqRDA
0WXdEGibE1ZGp7QEHF1Su8OxOGySqS9LhvS+kvcq7YCVtTJUU2FohcOhxJ.m
hcTp9SNLNbc8OtmuDGMMFHruu4UxuIMCcU6yuS9ErTAaU+FHR0T+bwtdDiW.
eDByx+Bl0NcedWbzpvz+aEcBBsyWIo2bJnW9Gyr7tN3qtk3qvtD0F63ituzO
Z0BqlJJMo5xhxzg7fmEu792mGvoV5J.tkT1GTuMoks+U9BYb74RzOIcsmm11
ovKdIewE9QO8Uc3K1Suwz2a8U1+nuqhC3zdp82hnNWL2CqYc6eoXszYkw4vR
1jcU+cw6CKmIOsK41FV5PJL3dPIDpKgOiJQZxW1LJs3nryO3Sgdl0he+2BFm
RfHx.KLtx8nThoONAiwzymR7OkFFNRsP2JnqBZSrFpvHOeJv+SXbbxWFkF3K
iHzy3kD6qS+JDW1xbp6xJLJ+eTytvbAB4O2J590KBS+mjy9XTpop6ARatwUo
QlViwk8tOqJQpIfPkVLH+ttLWWpHuKhWd33xFIAsyH4urJ9Q8FdqWsIh3gQZ
gVPYtHQ9DQ7vVLPuLM6emy18JVdoM5g2kqKIsC0we2GaRGxRYqLHO1NCxSlr
CSqFTzZzTUqTgOyWeZchAbDQ0ndhDWF87HK8ZuldMkeIMug7DR4scB40NY7B
QCwm0CnAho1tvdRMSHDd7CkoaGGVCH5k4vZHE9gNgz3DQPGqke1fOIyPj9bR
lM.ksB+pzl4H120N6pzQ8kWUcJY32Hkp.occBsUeN3vJDYW+4F5dKuWIYfMk
G3D1ybWwrRzhaqtaTLHeEiV.9VsvEtVo4045TYrAc9+uiaqZrumoDbIU03w3
pU3dYZd0r6VXJfFXhPTUccEfafK9+F0dtUsmaU6YSm1KChMLUN8K.8ecI5b5
jyFZ+29bFAMo8eW37D.8i6qsdEntsgKh9yv72VUVxkoiqTYaMlAWTNylk2FB
RSsof9tybqY0078zSHPmRGSfsoqX4Pspib.+AZ15ymY+Rsonp6AUQEt4luCT
OYWH8bo5.RPQWOoJks6vdcKNUecQHeFmRcE5igCUspQJhvnuJOw5w9qZE64b
OFlRHBWOexEYDp8ahT6hQPb6y5ovdmaNlG7ZaN.d9y7T.ZpwNXSP721EpH8q
eEFRPiloj6OzfF47KSTEkNENeCxXO7Fn.tNpf7pq5vkY70sNOEsY0ixG4ud2
90snrDyQEmmYdPhVmjpnGyZ6GvifOOgdDbtg50uc.Te6H36GzifOq0e8sbF7
VNCdKmAukyf2xYva4L3sbF7VNCdKmAukyf2xYva4L3sbF7VNCdKmAukyf2xY
va4LXCGmbGWVa7CN+GgKSRW476+uJu4PGjh+4v3WCyhNrLC12Tlhi7WUylKK
emqNtj2kWHUrksuv99Rwe.MuaeSSfxqQgeQe35sHZaRbPpytnm2DD6HacNrW
O1NSxsSX4BclH5iYxXQjdToBjKgWb.kvKuy.VOz7rgWG1CjE6WrHNbWzptSL
Jye56O.z2bBCNk32gichqU7K6kncNqh1sMN3aNxWFrX2ewJq.GsYfS5aTmtu
r7SizhymUaaD0ANYtFhPO2HhIdfV703Y7035Jdvm5JiowkYrG3HX43a0b8Pp
VQq2utrRHkmhKwsr+idSTpIRlv8aV4styMaNG47PX0vtxALkQlyzY3kGdf66
LAOy667Wji19TR552NZdpNhSOL5zxWAnvTZUOGTl4zKPzl9ZR5o6a8E5Moto
zFmPZMW2TmKqIO8jJMPp1OqDh4VDyg00.Ubfne0b7681uTI9.tXcuyiKZp1W
bUF7zRqfuY2aIxvB7PHDlPPdHJl.L0QsmD.r9jty+3sw4GWJuaaZ9Tso43aa
Z903llaa6xqOe0weZYTjjhR20lQfbNLxSS98Lwifo58M73wUjZ7VLYrGbZ3q
3SeuCf0q+RRxZGLLbBk+KwHQFwEFXpu76V0YSH4Do6ySrMZ33ynba+PNQPPi
8.xXlNB.fR89yIg+IFuP7cxpDE9KqBV1VlbRMGtpLWyTKMGQcb6yorO4j5TN
44Ty5YgQRu0KS1rZmyWRRydwI4Ime5te++0OcWemHcdPGlzVUc.z0xDo4rqk
IRaOb8vutM04u7W8D1423P9qb9sGS1ZvKnU9fWlk0he37Iq2gvitPkVg93Vp
8hAJ2LWN8XsNNzxxzc1SK6tVsDLyrxr9FEYPKQR4FM9EbwOZZBnAK+rySN7V
K8ciMKipq5It2Pm1I4xjl8ptluAP8LdkgTX+l0is81ZzLW06MtXVIoqChkS4
yA+.f9nFSaugVudbwkpdaW3PbJ7E4HmLZZaEDDIeWULZqkiv6lKeu7Zy7naO
m6LOMavAqOUzGaRIuBotlj9lDTHV2HpxqVfUDBwJ0I.yEf6EX05WXaKoNtdG
UgG5rSTBQO+lyg8Xsm.iouQtyOl6nvEBpO3xYnpWwxtNIakclT+payi7NP9L
v0zr468X2I86stGJhKVWG4rRv.zcS3LXp.tyiVY.Fp8pi0duA5DNdXwJLrUs
hTcp29bcS9PKtNJclCTMK4YU5F1c6GRWiuPnVilJ.ep20GwZnFIrMlmfZVZH
BR2LBg7EJOxmUTv+xT15+5ec2MxDtoSJgObRlfguTwzzVP3TNyjeHzBMav5G
8xTCnJOsAAA.zQS03y7FIEawXWFlmJq0gSx6PNEMj7q1FRTYZUXzMjD9kog7
kjWac8AxUSyHjb.bBh0yQ8JZZe3+DV+VtzCmVtSN24IEpcgpMDDvvv41Dd8i
2ir9Kqy7nOCNwmXFBp009kUYdD7QMOB1bSyUOEmro05zOeQSJViuwtzXtCNv
JU9sDjUNeOlf0VQkHqlrysPtdM33lFTx22tvioBKtSzpven4.ujifSnhKkSW
bUPVPSoj2fgOoBHupT6Kk5CkWb9wClmjDRpLNnZgmvzUWTw4w88fuzQwrVhM
ko2Apm619kaX3RladPxnoOolhCVDFWIAaR2GGVNYWt60rnketxeR4vsaMQnB
T03vpzfmaNCddOjGTl1u2bxa3TanMBAXmzLdSwD.ilbnIpQmPWH53ZaxmCOn
4.LYwliMWuVIuGNpGKtvP1gred29ntydv7Ic6lS5RTDr0OPkUYG5L+T79nUO
HsPT4E8C+bAEOTw+m6Ebh4MsR7Vx1kVPJaY3m2P4oKJ9BwSWlQicz80nROGp
FRkv5nFE3dmujdrnugukoXrIiSUI7HlPIBLBy04hZ9YG8.1.04lxdaZ60IO3
72GpHxrjcgionQbMqAKiXlzApuEMBkeYJZjFyCVUR001bsb4MmHr7gl.18hN
Q+wKQXM6BDNe8SMj5I0kdKWXukKr2xE1gkdmacVDFtsiDbjXFvKOqNY1S20x
ClwGYNMVymVc5onAeaM4eq1G2letF700r+tt840jeu5z.TW9+p4CjPy4KTS9
RjG0MmTmzKr4HDfyPHND6zoHPGis3bDlCxNbR1oixNcV1gCytcZ1oiS.NOg3
.sONQawQZmNSa2gZ6NUa2wZqNWaxAqcmrM3nEjyV6Nbq6Aoti2SteqSO4Tuv
+8+6+a+C0uosYdjSrrTyZMXyMLf7quoEqytCaxo2zVt1WkUbpjJ2iE7NYzqZ
ifkFsISmKvN+gswQYpUs3mtCNZp13KEcEwcYBFNu7SsjRVVSd+VgNbqPG5xC
cpzC2AeHCsZCrxSCQSn2bNDvwiNBCqq.z427FXbwpMj3j87u4Nn01aEqvI98
c+zkeaYb3aN99HvvpwQmqKbGcPvQzUNN10fEJ6MGtC5XRR2pWNrdIoygR9DM
lgq38swX4bvF.5gIzGTzFEixQGNwpNMyr6ztr9p8aEZ8FAzRNCPaM9UrKriP
KJAtSKDN.meGV6B2dHKn1s9pc2FpetFpgNK3Z0oibR8zcJbaqh1r.5mTYar5
U1VaU2V0haqWlCCU9TVtfEP0vYJZh97JghdHgEpyYUBUiN0OL7rKg39Hgz6p
SF35t7oqx2w4qbQG0rniOuhde57yZWxQWuRdCcPAA5k5GTgls6Hczpu3hCZM
HZuZdsUQu0oQ14rF92lFtMbyJmccVJ6XerNPGLQ36S70amEghef6gYDWp.6p
2py6c7Hirx94zqWNOPFRvBogtyZ4a147fy5cNeZavpUpLAgHMOU+eEw21VG2
do8zmF.00T3um.6w7QLWUBufMqGJk2YKv8szJvpnFMuduVS1m1h+bdaf1u4m
Sh13v5BL8TrPdMvjoXiSOLEK39Hjm7px4EgAZMeeC4Lai4Maert4mGvSuy1N
eJO0Hd4ke250+tc65EudvPvvqC43TyTeRy.E4rXkUe1LMq7LTySjAvjXpLGO
TiZMpYmeikzOlSHBaRf5oDivyMFQN2DEi0QW8b0itpHS67K0Mow3R99gzXX0
mgPCgFRXyHown+xo.jB0.lNr4TJHPkBxbJEXnRwb0hvn.4wG9bJEbnRgpG4r
IEtHnbZzb1GwE2GonpAzoSf6xHZpLSo1e3oSK1pKuamJa2NU15tg71ox1sSk
samJa2NU1tcprc6TY61ox1sSksSwnamJa2NU1tcprc6TY61ox1sSkseXNWxP
3eGVhY9jtKnxhJz1r+xH6UStWeHmugTVnaC1DFOFgMMY+lUlZznfVbVnWooS
88YIhvJaknWq55hiKslcsu3bPJo5ohksvuNYJrGo2hhAIgboxJR8X4FBE2HM
8yje9NK9XABJg50HkKPQWmLpm7e6V+wThLDbgv2y6vAP.m51e5grYFonOrYz
DRQjGnbgMqe5MmOkFt6aaxdQ9d0wj0mRC17YGtymhjsV5E7cmphkPNe5KQaT
i153iEDmO8RxV86vHBy4SO8T1g60MzRTmWcxuSB6P58y4PQVqHo3BwW5xNjK
UjsY276QgUkJUejVUd7CY9ruXfE3Ny6xPkgEz4RqDewAdcPfpdBi4NIr4Bdl
YyEkxV0S4KQU2gWqr8A135zvaCnSFG6HQQbWWjHWEJPKN74fke6vRgTVUKMz
n6wgdrwODmtdWkWShBp+AWSbOgKmH2a4EMLZKCz..KBV94m05Qs1vSaXiddS
hDtiiV94o0U4vZu45hRByvc0di+wn8VPuzs2ZopZFUXZ9quIn4FAmr4m9U1S
yl13S+i6L7IFZfeRry0SBqnBkNeTUOvgtaczpsIRqxcEELNyPDl47aGyEe3s
iU7PXHhGoJdUcmlGwCW.5gSmh1ALExyplDUugv0UyRAtzbhFz7a8aGo7IfYl
PaU7XBWMo6YpQtBoU+1otsSEq4wsguK3bbOJO.OpB7a9aDD9fZCxyyz79prp
bRYkjHYD8e7fHudSAxvA06YRdTP7MWSdNoQvf5tFFdAynlCm4pukHLSKf4Y3
udA6L4NslvOYVCDnOaxHUS0rmOldeMZMLE9soH.JEYJFol3C3Iw7lpmTWNzp
E2PMKbA2rRcFBLv0b3xne2X68AAE37oxsNHms3l6ma55REhx8j0ucrRGnNSr
IIxDHOIxTD0Kjg274yQndvdzr4vunOjVR+oH7ANe7g5WDau43KnxaGqWGHAa
q85fm5l.POZJdNL7XP7xPlhvTwPFohilj4TBJXro3IAIVLl6j7jf.eSxSBTu
Txwh5e3OIP1d3oPm.E6xj7jDPsxGK5QfXPnEmQ+jfLBLYJFAl.o+DgOUOotB
QmMEwuPfzehMI5DjfH7lBe4T74xuGEzxRMEyugBA8nho5I007aXSQ+IJDOrz
IocBxb1X3IvaD8r4KmJf5gcRdRchdSgUNDGrGh0XbOIH9HnSw5Ev.sVqho5I
00nFjo5AgNKFDPbvRmjmDnfkmhEEiwOa5jOTWDicME4fld5DnRtPC+ezOH9Y
RifLH3oiWX1t1ZrLt5QTiUwqwl3mxh3Myd30YMbcVgVq.TMpZGEdZszi8O8w
lpzjh7I0dQlNjBLcfEW5.KrT6ESRyERRCEQRQNud+GaNCdql8tks6rTvn1a.
fWjnit.QA0XWubhFVQ8LvhAcXEB5j0fe37rq+E84PK3ygWrmioPOGQQdN5ND
mVLm16X.n.NGsrTo7urKF8t.9fVXlConLmDEtTwW1IxCqfKmDwpRNpNcsEC0
iWuKdxAV3jCz+54XLtp8Nf0JVtXHAXc0UAPNZKqSKzQ6R0PKtwoR.KWDifkP
PEt3DIgkKPQvBHnhRbhDvJEeHbIriBNbhDtpEVHXoCTwD1dgDNdE3jBFDr3C
pV4Fs.dRw.BvuCvB.bPE+2nUni5S6Hds.N8vHs.InLWjHOfSObMikySyjYhw
MbVV8w+7G++fdbPEK
-----------end_max5_patcher-----------

You can do a simple test with this by just setting the line~ at the gesture recording level to no smoothing. There’s still the same amount of information, but with jagged/unsmoothed edges from the multislider output.

But yeah, there could be something to explore there.

And in mc. too, @tremblap will love it!

I’ll make something a bit more vanilla (osc->filter->vca) just to hear the wiggles it pulls out a bit more.

It’s also interesting to play with the fact that computing the nmf with the same settings again will produce different results, since it starts from random seeds each time (right?).

Maybe an uzi 2000fluid.bufnmf~ @iterations 2000 is in order! I’ll let you know what it outputs next week!

ok, dismissing the Max8 shenannigans for now, I can say that

  1. I like the recorder GUI logic. first time I see such a recorder coded like this - very good UX

  2. I removed the 2000 iteration for something more sensible

  3. I’m trying to decompose - doing 2 different gestures and seeing them separate - and I don’t get that. So I will need to be more creative, but ,my gut feeling is that the spectrogram does not include enough time to register. I should try a downsampling version…

1 Like

What do you mean by this? As in comparing two completely separate gestures?

yes - nmf should find 2 ‘objects’ - I’m doing a rough downsampling version now. will update this post

update

[warning: very ugly code]

so I’ve downsampled dirty (dividing the count~ by 44.1 which takes the last value at change, there are much nicer way to do it) and replaced your gui by 2 gestures (quite similar, 5 fast and 4 long wiggles) - I wish I had a joystick to train with something more realistic but you get end of day hotel room service today.

<pre><code>
----------begin_max5_patcher----------
4685.3oc6ck0aiibD9Y6eEDBAI.Adb5SdrOMI6Fr4gjr.Y.1ffYWXPIQayYn
HEHormYVr92d5CRJdzjr4kj2Y0.LVT7PcUUW0WWcUU27Wt9pUqi9jWxJiuw3
8FWc0ub8UWINE+DWk88qVsy8SaBbSD21pjMQ68dY0MxKs2Mcyi9gObWr2lT4
OCx4VvMFXHk+ADCJ9v3mydnvC67CC7RE+fnrS5uU7yGs9CuwzZ0w6L5PZ9sB
xNaR5mC7D28J9I90qul+mazjAVeHMMJLuEj+7oedumj5Ws1M7gUEjpB9iZZK
XP4GHR9eUydPErGVM6A+Jg8fKI6syKIw8Au7lH06SB5dEz.B.Fr+hvFuQ9Av
vjx9CkfMNeWEItJRdUj3pvSxkykPA9gdahNDJDSVsoVzoJAxAJLhoRUBpk3a
.z.Loo1KoRQn2yrFogNQpAnU6.et.oKy.nDFyzrjY.Z.lATyy.Gy6reoUdNw
+gP2fU2nAJPVWNxhJkBcy9p5vopYezx1gCMV2YWtV7NP1aCjZ.inqGuj79TA
3yXOHgdKcT.7XxYPy9u7hAgbKrOc6tMoEJyDG.mwI1CVmdQwv79h61M5X6pA
mxFERfQaaI79hPy+q18wPL9LX+lXD6k3ktpKNCHGKxh0w433XYlydCxBEBvK
oKlsvd6Mt2Ob6cLR6OlbXWmtPK.bsrEe3zC+AZxeNZyckIBu3LdJiotZ089A
dO4Em3y.bNJIuZk698kN8UkdDtj3CQwkb1feJ+P4ovEmJ16I+7mmVbV2XlnH
kIGNDKouOYlC1v+Yh15EGdvWPJxSx5StN+GLW5YIG6hBDV3lDoMfcoYfv5+d
HHZyG81VRpvL516E5GtmqCFl5llQcEWdq28tGBRu69nvzD+uHHPHqWQ00u2c
iWqObn6NI28Wi841zY2xCw9aiB4DQEYM+z4MGy.PNsJZYlQbGgt6U7vLkAlb
okKlvXxCIqci4cEqkZDn7KlFEET8RE7Rf28oYWdueXXMoXZz91uXr+CO1wyt
Nhcwcc8aKtRxcGBkW8NlMW5cItOUkBScCBxLBq9y+I2P+ctodo9xt.lGz4Wz
KzkwnOlrINJHnhbRdkmTbksLs3MdO6uM8QQCUVYfc696yUhVUzKu0+Aujzpm
K08gjpmogEJ6TGVmYkdWp2t8ALtPB1DwkHqJwi4Sn+nFB2uvFmTzFEy8urML
C2nPE8vV+n2ITTt6e4EdnvZrPkt.AnzyyMvXXGAahBhhKcCktCFWmM51J4cc
SoKU7bumISQNDHz9F1QXH1BYJNhc.kMJNrfcN9bv7GjPYi0i32NwDYQnhirQ
XJleDPwihN1l.nirk.N1.h7H1ofr1r9ix73Jy3w5nFfDVMNZeTbARxsXmJO2
gznGhc256ImcFn3ZhwapBvI.oiY2YSUCNzHqivu7ugbvpV5T+mG13paGoWf2
NVqVoGgMvjokPbZCf11xiHT.B0P5LHEgBgQG5BCneop1fcgN.ysHpss7HaBt
0GsPavjxZL98ax+mk7H4u1IQYnj3Lg0erg+aTsCAALkTHzzBIUusA.HoY+Q4
AfX9U9CrAELdmaXhw6714uNJX6pJ2N24EQScmeHeHeuhdBrCBJ5IPElYH0hy
pcgDKJDK5GPNXaG4QTHiATo7T4Qc.DnkiniygRrrj5cHGotH0rxy5tYSc8VL
mTEpLj7dTNNBIukWTitOlD3y7e4+xcvQWiuRTuzs2x+YgoWlGslb2b0jTaUQ
AbSo+zYGbMVj0i1WGpzHtPSzJCS3zHbDdfOhdRlI.aLHjSY0OtsCgBOUjd0n
nNqCl2NFdIj3bTzlG0CRrkMe76aTdj5G8UyH52LJaEcTEZZoNbMB4rDGk1rf
dK4qES5hOIHpRO7+aAG7dCTWJW0nBPKShbP8BlvgeJ3IjIhidNbRbwQZmVfo
fOwbw29Y2owD.DabcITtEFijHCHHDhOcLw2G64MQtPzKf4+S5RF20ySGC7+7
BBhdVeNnb7LduHhFTG.vt2wdYNsYIweg1PAlEk06QOIL5gcq8h+dl2pSpiha
d.DpaTlKDTA2.KOlvhxDwRGB4bwnvcMIllXmLSDqLugYc.N3dcj97x3G4a86
8pMO.KHPPzNXhIvIad.VvldAbl51y9Mx+AVwiP016jQi6N2zzX+0GRkAeob7
VGTTidHHZsaPVLgJDtcEBoiwY55iQYXfw1dSztcGcuqTB3u03+3sIJdqw29i
4WrbjPgcETeYIGXwyKCzjHqejRg6tLBEhl6PV+4gCUlPJjP+Cufm7R8KBAxh
jBf1DSO468rQ5idFq82GE3FaHSmiAqKzSYJ6yS3x5CqyhCaWRRfClKDsgDlK
LLTblatNBgKs2zivIwObHI0+dlnIsZD+qHUKRBmjjRXFykkae8HMsohwxWRg
Iw40ivL8Q+Dis9I6Cb+rA6P20I+osJkh3gHEYfsh7sRD10x5ofBGR9lQpkQ3
kLCdBGLZMarZUGAVRXMSSmaswlPaDOmTCOUkVGyQWLCBK0K9NYBIJysLh2e2
gckxlFOoa4mBtfoxssBxhC2Zr4Ii+P64rWGomE.xGtW3TiEbvorGsnEi1yrQ
0uOJdW6os+9fHWQUmzwAA9IhO0RbfwEXQXBRbJm1jGTExiBaI0AR1gmrE4Lf
KNhGqJBrRJSpIMMaMuxqOb+8kbNYySyZ5zYRvsiS6xVlbXDyYCK..vYTBbvo
YGpekv7UXd1OFopK4XetxwN7RN1eMlicUYWu9zaOhgUapqsikUq3MYnY7QSM
R7Rk3lrwOKemsCw0ZIuUT887nqyShND0nZhZ0MjFvcvUUehlPdpFTsRBsUEX
f4Sx8zWhh1Y.mEgFH6CmQKubNmhq5AzWIqJ8IGwPXy0OjqWCLXLpG314WfZ9
sRNhkyJo948C258oRiDUQ3nrBWpKuD7M+5pkZIQGh2jqbj0sYTk6Y.Mo9gEi
V89i7qQknE0Qm1PIBts1TohudCBk2W15toqEgD1QT.rDS4bO6o.XUU+5mifC
EKCfFDvFBXST31DimihSezH5dieZ029i+zpoOa7Learj0.NX3yFmRN8yFus4
XtIvyMNH54wMGfLcDLQDxLJdvStzjdNVoSLW724FvbV0.d6zXbaAiaQF9h6v
4rrZdVafLx6xMXNVGm18pf3lh07wQEEiUxGryUHQVHnkxmLijAEzFBRs.hrn
UOuXF8QwuvDSnorPIxVgHYfmPZCOfVod5YUEKXEyW1QY.4KOEsSoFEST7hwa
lzZJAIsdHX4ZJwbTRJEJPHvqJIEegUkvlzIyDj+QeKwJ48bzJT7cMz3xr3rG
9RtB6bdL33q3xdAgx+TKQfbzHH1oaYfBqKbKq3P7RJCDdg7xTLgvxIgPfzit
pMnQiH1mzX7F3t1KnhyMwGBjgzCr3gANa56ThsDuQlOA.X.g.FOOQ.9oT+Me
rhXfGhrpEVUdEI07fIGI4TwjgdH+pt7RdYar6CEogedTuks5KFYMmABC5OV+
8lYn7YmHG0.BGdVgPmgUm29nO5UHIV0uNJDJ3NKqAijQAK4ru9PxAeMbblGS
9B0s6CN3u8Vl1.Oiy29gjU8loFLCOmw9l.QRZvsuAXnx8QScx4WMztYbJFJB
.43xdW47qXAFLxN9rrURvQ6cSMDlyXFgyUD37sAenfaLdN9XA7qt3BFlnBBg
x73wS.EDg4EFNDJlMJdHQrvZIkUsEwBzsFeGS.raeTh2vK7GSomdDjXkni.y
Ug+fomuB+o0jUxSGR73rlLoMyV4v8SBY964rUJmEKLyKap7CS7kDVdIgkWRX
43R61di0dd66IESH4naYoSiL9rOZQmR5kpAkUe4K0BjVavZ0dbUvas.w0NLW
+PcsA2Ue8EUF1i4Og.oCIC4aly3TT8U7jJrOMv+zACrWbPMwB6.OTOLwdvE6
EarW7wdvH6GmrWrRMvK0AybH3lcfc1K9Y2Xncii1MVZm3osgopFWscTi9wWU
iwVGdnNVaiq24LSZB79c+v+9uW+hcWmCsN4CYAMaikwiPE3bq9VpBjlrp4Cp
trGZqzGpt8GTIa5SUr1XnrZCmE6GlJRzpw61G3mxCywOsZk1BQHyaR9pXkZp
LoQ8NXWirkzsrD7ZVVxSOOeqITCoW1FrlzwbJcxpfV3eCK29yuzqccsPp2un
srdoibSeaRxW3ugsw274MAduXXaCle4rDD0zb5ZvfWyR39FbhqwYH1DRAyzX
TPQXxyDuSGfvz42vJvk2gO6U2sdtHzPJCQ3a4KbYBQ0Ve4vk0VcKqQmUYcsc
viqzXG0TCQHBmWBkMKjxVWVAJwAFu2T0tRKEWYKEXoBId04P0nXKa1QnpdGU
zczntG47rQSQl5ZezzQ4MGEuUNSe3nzgNIjNoaJGbZob3.nbK7qJg9fIc3qF
oNXHjNrZY9dRnvVruZwXz5bPgVCUFBOwT3P.E5uOtzEqtsv0cocWObmiJvIc
Wp2cEEkZk7c8c3vkbogrO1auW3VijpqEhgupPf1PgiQ7shFDFdK0BR36EkVn
QGQaJ9U55og4tvZlltwN1WRLt0XWhwa26tcqnBXXZn7+Wg1UkF71W4zCRVyO
lKpsDoEmVOs3cTjksVMTMBZUEdoy.P2t6qm9doCgeHxOzfrpW4c4+2qr2hui
5kI6I7cTFKHuJHLgiVOGQZWBROmRPQJ4MdaVAe73ieytceSRRmxyhh7ZfKiL
BnewGpk0UE4bp.VeNRZL+n1kFDP6SMp0oEUY9jfACYN00X1YVvAk65ASWxAW
TIG5TuzEqLdrkoX7XHbRKfQSzWGKfQScW6f7TpW6FaNWnYcYMpMowA8pNUME
yvbdIMvPHskZceRwZREbk0EiJH5REzkbMvhZpCzRvTVbp.oKUfVRp.qKUPVp
Ukrt8HHRGqJ4Ku.Bt7BH3xKffKu.Bt7BH3xKffKu.BFuv4xKffKu.Bt7BH3x
KffKu.Bt7BH3xKffKu.Bt7BH322aA+.v2.f2BQlq5cojlu5zkIudHqMcKmkb
0yt2MzqXCtY8wH9tfLDpXgSGGcHbqbgxPpPBMAWULcBseW6xWAWkuCU950Xh
mNl.KwjMZdTYZnt2gzyvKX7rU0s70r8Xd+hCNS6tXq63kGe88xGckBPLh44u
iCObOT7v2IwP1mgM0mhc6hvc2+hwai8R9bX5iruy2P2eara3GMnFu0O0KVD2
2D9J9BX71m8C4CiaXCcPFu8wn8huAAHhwau+9zhqMYUKD+Mx.qIQD9JFYDBU
myw9JAy1bCeSps1Nnx.2J.xTqJ89O21Y3aYRVmASr78RmN1SQzeKzoXWyvAT
rg3aBG9aWgkbezgy4UASezuZBhaudcD23OOrsSCKnD3UtcZ.ZLRn+CgQr6Nv
eyGK+KE38f6lOWDRf5uFSj6yGqzcqqAnXzTyiiq00FZSERnyMPpxC4s1cyGe
PzXs+pt.291JUi3+UNxNjr.0W3R5qbM.pX4cAIv4WC.pqFfC92CZ.hFuZQaH
UHpmR0L0hlI5uRsWzSMUmqqToBHZnKpaSiIZzzkyr+naIZkBtusVxdtZo93I
9Nj3jaIhsFszbvR5zN7cT07ZNXzMjoNphn4nSx4D0P78e2i0rwB1PHs3HyJV
AyjUrVMMFpF.ALMwqkNbsybnwXdpLqE3w8AUYtHhSsFJfBVjlVGPlb5a4ku0
5tmIKEczVgyEpSeMDwdtZInNiML0VhuwJ2aKMK7D1Q2w6lbKYpCOglqVpW3q
Ygmf5n6MG.kHc3Iq4fmP5vSnYYXbft5dvI1RPGcw5mbKo0fzyAtGjbxz8r0v
xslB5N+s6iXSlNadZNTYJBj6zLlx2wAhuMGzVuRAq4vVWGsUj8bIu6yOZHn4
TEkSOt1NmGuUpsS4UaGxq4NiW66Hd02I7DI5qVMEK41dpk3ZY77WttsRNJOE
gpqa3wTyvirdgGYsBqtphZuhhZoZhxyY4MW2dRYqlP1xpdJpAX0c.Snte0py
qdchMtp0Zj0363pu2YqCry2..5UKuCnNdmbM7Np52cr0t6Xqa2IaPzr9bUaX
nQM4NYZoRE8olLFb81pas1Nl5rcVX3R0SauRd8pg1YgrpjOwwOXkZ7tAWSri
rdXGI55LC3Mv5dsstupVG50KVt9V0P6puZZcxZVMqcU0T0XqW04h.KWWpZSg
ZUKpyDEVtlS0l.0pNSmIBrR8jpOE1SMjNSDW0ZEUM00S8gNxZCc5LPiZ.Uag
qVk+3jIvF02oF3NZVSmipdNmLCcje5VhWyuOKHPPPNXhIvIyuOKX0QnNQcSr
m4Wu9+etIUvD
-----------end_max5_patcher-----------
</code></pre>

Try it like this (downsampled) then change the buffer size back to 10sec and remove the divide after counter (i.e. removed the down sampling) and see: you do not get segregation (recognition) between gestures

Now, your patch is much more divergent: complementary CVs is awesome. I will try them on real synths. Mine is more boring, in line with what I expect the algo to do…

1 Like

Ah, I see what you mean now. Temporal objects.

I guess it’s the audio I’ve been feeding it, but for most of what I’ve done with fluid.bufnmf~ I get something like what I’ve been getting in my patch. I tend to not see any temporal separation at all, with most of the activity happening “horizontally”.

Some visual aids for fun.

Two objects:

“Not two” objects:

So is there a way to get similar results but at higher density gestures? What impacts this temporal segmentation? (I try crazy high fft sizes when I was testing, but seemed to get the best results with the “medium high” settings I used.

I don’t understand your question. You want or not 2 objects to be separated? If yes, at full SR? then you need to make your fft larger, which will cost. a lot. hence me downsampling gesture at 1ms and enjoying some sort of gesture separation… it is still spectral domain, just super slow. I wonder what it would do on real gestures, but I don’t have them with me now… I don’t even have a mouse!

What I’m saying is that I didn’t realize that it would do that at all, since none of the audio files I was playing with got much, if any, temporal segmentation going on.

So presumably if the fft size was big enough, it would produce similar temporal segmentation at audio rate?

The trackpad gesture recorder is handy for quick testing, but it would be great to see how it works on “real” CV that goes all the way up to audio rate (and back), to find a happy middle ground.

Would framelib voodoo (down the road) help on something like this?

Ok, here’s a less downsampled version (/~ 11.025) and it produces some interesting results with this hand-drawn gesture.

You can kind of see the three “sections”, as well as some “remainder” looking channels.

(all three are from the same gesture, just recalculated)

Aaaaand here’s an @iterations 50000 version, for good measure…:

edit: in looking at all the screenshots in a row, it’s surprising how “sinusoidal” the decompositions are. It’s like seeing a mandala/fractal sine wave smeared across the ranks. Is that due to the fft-ness of the underlying process?

I mean, check these out:
40%20pm

29%20pm

What business do those have coming out of pure DC.

It would be cool to hear them in a real CV context as I kind of feel like something closer to the original approach might sound more interesting, with the downsampled approach looking more like a CV-controlled matrix mixer (panning around the CV input to 5 outputs).

Actually, while that @iterations 50000 chugs away in the background, is there a way to feed fluid.bufnmf~ what one of your ranks should be, and have it calculate the rest of them? I’m primarily thinking of having it do some decomposition, then taking one (or more) of the ranks and throwing some DSP at it (filtering/distortion/whatever), and then requesting what the rest of the ranks would be, to make that sound up. (this could be a silly/naive question, but you really start to think about things, and life, when you have a 50k iteration nmf spinning up your computer…)